Golang : à partir de []bytes pour obtenir hexadécimal
http://play.golang.org/p/SKtaPFtnKO
func md(str string) []byte {
h := md5.New()
io.WriteString(h, str)
fmt.Printf("%x", h.Sum(nil))
//base 16, with lower-case letters for a-f
return h.Sum(nil)
}
À tous j'ai besoin est de Hachage de la clé de la chaîne qui est converti en une chaîne d'entrée. J'ai été capable de le faire, en octets, format usting h.Somme(néant) et pour pouvoir imprimer le mot-clé en %x format. Mais je veux revenir à l' %x format à partir de cette fonction, de sorte que je peux utiliser pour convertir l'adresse email de Hachage de la clé et l'utiliser pour accéder à Gravatar.com.
Comment puis-je obtenir de l' %x format de Hachage de la clé à l'aide de md5 fonction en Aller?
Merci,
Vous devez vous connecter pour publier un commentaire.
Si j'ai bien compris vous voulez retourner à l' %x format:
vous pouvez importer hex et l'utilisation de la
EncodeToString
méthodeou tout simplement Sprintf la valeur:
noter que Sprintf est plus lent car il doit analyser la chaîne de format et de réfléchir en fonction du type trouvé
http://play.golang.org/p/vsFariAvKo
hex.EncodeToString
est environ 5 fois plus rapide quefmt
dans mon analyse comparative%x
m'a donné une sortie vide ethex.EncodeToString
eu le rendement escompté.Vous devriez éviter d'utiliser le
fmt
paquet pour cette. Lefmt
paquet utilise la réflexion, et c'est cher pour rien d'autre que le débogage. Vous savez ce que vous avez, et ce que vous souhaitez convertir, donc vous devriez être en utilisant le bon de conversion paquet.Pour la conversion de binaire en hexadécimal, et à l'arrière, utilisez la encodage/hex paquet.
Hex
string
:De Hex
string
:Il y a aussi Encoder /Décoder des fonctions pour
[]byte
.Lorsque vous avez besoin de convertir un décimal utiliser le strconv paquet.
De
int
àstring
:De
string
àint
:Il y a plusieurs autres fonctions dans ce package qui font d'autres conversions de base, etc.).
Sorte que si vous êtes de débogage ou de mise en forme d'un message d'erreur, utiliser le bon conversions. S'il vous plaît.