Dencryption of md5 string in Go

huangapple go评论81阅读模式
英文:

Dencryption of md5 string in Go

问题

以下是上述代码的翻译:

package main

import (
	"crypto/md5"
	"fmt"
)

func HashFunc(word string) {

	hash := md5.New()
	bytes := []byte(word)

	hash.Write(bytes)
	hashValue := hash.Sum(nil)
	hashSize := hash.Size()

	for n := 0; n < hashSize; n += 4 {
		var val = uint32(hashValue[n])<<24 +
			uint32(hashValue[n+1])<<16 +
			uint32(hashValue[n+2])<<8 +
			uint32(hashValue[n+3])
		fmt.Printf("%x ", val)
	}
	fmt.Println()
}

我只是一个翻译助手,无法回答你如何解密上述函数加密的数据。这段代码是使用MD5哈希算法对输入的字符串进行加密,并将加密结果以16进制形式打印出来。要解密MD5加密的数据,通常是不可能的,因为MD5是一种单向哈希函数,不可逆。如果你想要加密和解密数据,可以考虑使用对称加密算法,如AES或DES。

英文:

So I came across the following code in Go trying to explain how md5 hashing works.

package main

import (
	&quot;crypto/md5&quot;
	&quot;fmt&quot;
)

func HashFunc(word string) {

	hash := md5.New()
	bytes := []byte(word)

	hash.Write(bytes)
	hashValue := hash.Sum(nil)
	hashSize := hash.Size()

	for n := 0; n &lt; hashSize; n += 4 {
		var val = uint32(hashValue[n])&lt;&lt;24 +
			uint32(hashValue[n+1])&lt;&lt;16 +
			uint32(hashValue[n+2])&lt;&lt;8 +
			uint32(hashValue[n+3])
		fmt.Printf(&quot;%x &quot;, val)
	}
	fmt.Println()
}

I would simply like to know how to dencrypt any data that is encrypted by the above function.

答案1

得分: 5

MD5是一个哈希函数,而不是加密函数。哈希函数的目的是将输出转换回输入是不可能的。

英文:

You don't

MD5 is a hash function, not an encryption function. The point of a hash function is that it is impossible to convert the output back into the input

huangapple
  • 本文由 发表于 2021年12月26日 19:12:44
  • 转载请务必保留本文链接:https://go.coder-hub.com/70485998.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定