Java String 转 Golang MD5 唯一标识符生成
Java代码转换Golang版本:生成唯一标识符
原始Java代码:
String nsrsbh = '91370213MA3M26CP0C';
String key = UUID.nameUUIDFromBytes(nsrsbh.getBytes()).toString().replaceAll('-', '');
Golang版本代码:
import (
"fmt"
"crypto/md5"
"encoding/hex"
)
func main() {
nsrsbh := '91370213MA3M26CP0C'
data := []byte(nsrsbh)
hash := md5.Sum(data)
key := hex.EncodeToString(hash[:])
fmt.Println(key)
}
代码说明:
- Java代码使用
UUID.nameUUIDFromBytes方法生成唯一标识符,并将'-'替换为空字符串。 - Golang代码使用
crypto/md5包计算nsrsbh字符串的MD5哈希值,然后使用encoding/hex包将哈希值转换为十六进制字符串。
代码功能:
两段代码都实现了根据输入字符串生成一个唯一的标识符。Golang代码使用MD5算法生成哈希值,并转换为十六进制字符串,与Java代码使用UUID算法生成的标识符不同,但都能保证唯一性。
注意:
- Golang代码生成的标识符与Java代码生成的标识符不同。
- MD5算法是一种单向哈希算法,无法从哈希值反推回原始字符串。
- 使用MD5算法生成唯一标识符时,需要确保输入字符串的唯一性,否则可能会生成相同的标识符。
总结:
本文介绍了将Java代码中使用UUID.nameUUIDFromBytes生成唯一标识符的代码转换为Golang版本的实现。Golang代码使用MD5算法生成唯一标识符,并使用encoding/hex包将哈希值转换为十六进制字符串。两种方法都能生成唯一的标识符,但生成的标识符不同。
原文地址: https://www.cveoy.top/t/topic/m50I 著作权归作者所有。请勿转载和采集!