Go中md5字符串的解密

Sri*_*riv -4 encryption md5 go

所以我在 Go 中遇到了以下代码,试图解释 md5 哈希是如何工作的。

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()
}
Run Code Online (Sandbox Code Playgroud)

我只是想知道如何解密由上述函数加密的任何数据。

har*_*llb 5

你不

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

  • 不,哈希函数用于验证消息是否未被更改,您发送消息、哈希的输出(和类型),并且接收者可以使用相同的函数并检查他们是否获得相同的输出。 (2认同)