write read golang from files example bytes hash go gravatar

hash - read - Golang: de[] bytes para obtener hexadecimal



save bytes to file golang (2)

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) }

Todo lo que necesito es una cadena de clave de hash que se convierte de una cadena de entrada. Pude obtenerlo en formato de bytes usando h.Sum (nil) y poder imprimir la clave Hash en formato% x. Pero quiero devolver el formato% x desde esta función para poder usarlo para convertir la dirección de correo electrónico a Hash-key y usarlo para acceder a Gravatar.com.

¿Cómo obtengo% x Hash-key usando la función md5 en Go?

Gracias,


Debes evitar usar el paquete fmt para esto. El paquete fmt usa la reflexión y es caro para cualquier otra cosa que no sea la depuración. Usted sabe lo que tiene y lo que quiere convertir, por lo que debe usar el paquete de conversión adecuado.

Para convertir de binario a hexadecimal, y viceversa, use el paquete encoding/hex .

A la string hexagonal:

str := hex.EncodeToString(h.Sum(nil))

De la string hexagonal:

b, err := hex.DecodeString(str)

También hay funciones de codificación / decodificación para []byte .

Cuando necesite convertir a / desde un decimal, use el paquete strconv .

De int a string :

str := strconv.Itoa(100)

De string a int :

num, err := strconv.Atoi(str)

Hay varias otras funciones en este paquete que hacen otras conversiones (base, etc.).

Entonces, a menos que esté depurando o formateando un mensaje de error, use las conversiones adecuadas . Por favor.


Si entendí correctamente quieres devolver el formato% x:

puedes importar hexadecimal y usar el método EncodeToString

str := hex.EncodeToString(h.Sum(nil))

o simplemente Sprintf el valor:

func md(str string) string { h := md5.New() io.WriteString(h, str) return fmt.Sprintf("%x", h.Sum(nil)) }

tenga en cuenta que Sprintf es más lento porque necesita analizar la cadena de formato y luego reflexionar según el tipo encontrado

http://play.golang.org/p/vsFariAvKo