首页 新闻 会员 周边

哪位大神能把这个Java的加密翻译成golang的啊?不复杂

0
悬赏园豆:10 [待解决问题]

public static String sha256(final String text) {
return hash(text, SHA256);
}

public static String hash(final String text, final String method) {
    String hashString = null;
    try {
        final byte[] bytes = text.getBytes(ENCODING);
        final MessageDigest mesd = MessageDigest.getInstance(method);
        mesd.update(bytes, 0, bytes.length);
        final byte[] hash = mesd.digest();
        hashString = convertToHex(hash);
    } catch (Exception e) {
    }
    return hashString;
}

public static String convertToHex(final byte[] bytes) {
    final BigInteger bigInt = new BigInteger(1, bytes);
    final String formatString = "%0" + (bytes.length << 1) + "x";
    return Util.formatString(formatString, bigInt);
}

public static String formatString(String format, Object... args) {
    return String.format(Locale.US, format, args);
}
Eysa的主页 Eysa | 初学一级 | 园豆:62
提问于:2023-12-18 19:27

public static String sha256(final String text) {
return hash(text, SHA256);
}

注意这个方法哦,这个是最顶层的。SHA256加密,没看懂他写的是什么意思。

Eysa 5个月前
< >
分享
所有回答(1)
0

以下是将Java代码翻译成Go语言的等效代码:

go
Copy code
package main

import (
"crypto/sha256"
"encoding/hex"
"fmt"
"unicode/utf8"
)

func main() {
text := "your_text_here"
result := sha256Hash(text)
fmt.Println(result)
}

func sha256Hash(text string) string {
return hash(text, "sha256")
}

func hash(text, method string) string {
encoding := "UTF-8"
hashString := ""

bytes := []byte(text)
hasher := sha256.New()

_, err := hasher.Write(bytes)
if err != nil {
	// Handle error
}

hash := hasher.Sum(nil)
hashString = convertToHex(hash)

return hashString

}

func convertToHex(bytes []byte) string {
hashString := hex.EncodeToString(bytes)
return hashString
}
请注意,Go语言的crypto/sha256包直接提供了SHA-256哈希函数,因此可以直接使用,而无需像在Java中那样使用MessageDigest类。hex.EncodeToString函数用于将字节数组转换为十六进制字符串。此外,请替换"your_text_here"为你要哈希的实际文本。

Technologyforgood | 园豆:5992 (大侠五级) | 2023-12-18 21:19

感谢大神支援,我知道Go里有sha256哈希函数,只是不知道这个函数的结果是不是和上面java的算法一致。

支持(0) 反对(0) Eysa | 园豆:62 (初学一级) | 2023-12-19 08:58

亲,你确定上面那个JAVA的hash算法就是Go里的标准hash算法吗?我看还有位运算什么的。

支持(0) 反对(0) Eysa | 园豆:62 (初学一级) | 2023-12-19 13:58

再就是你给的代码验证过吗?

支持(0) 反对(0) Eysa | 园豆:62 (初学一级) | 2023-12-19 14:02

@Eysa: 感觉像是gpt生成的 😃

支持(0) 反对(0) _hong | 园豆:200 (初学一级) | 2023-12-25 18:29

@_hong: 你是对的,这个账户所有的回答都是GPT生成的,看着烦向博客园官方投诉了下,官方说没造成影响,不管。

支持(0) 反对(0) talentzemin | 园豆:761 (小虾三级) | 2023-12-26 09:19

@_hong: 不用感觉,自信点,就是GPT生成的。而且没有掐头去尾,耿直的热心老铁。

支持(1) 反对(0) 大楚打码人 | 园豆:4313 (老鸟四级) | 2023-12-27 16:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册