s中的SHA1十六进制编码

2024-04-26 09:56:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要将字符串转换为SHA1十六进制哈希,下面是我正在使用的代码:

val md = java.security.MessageDigest.getInstance("SHA-1")
val ha = new sun.misc.HexDumpEncoder().encode(md.digest("Foo".getBytes))
print(ha)

但我没有十六进制值, 我可以使用以下代码在python中实现这一点:

int(hashlib.sha1("Foo".encode(encoding='UTF-8', errors='strict')).hexdigest(), 16)

python在scala中的相关特性是什么


Tags: 字符串代码newfoovaljavamdsha1
1条回答
网友
1楼 · 发布于 2024-04-26 09:56:55

基本上,任何将字节数组转换为字符串的java方法都可以完成这项工作。你知道吗

Here是讨论将字节数组转换为十六进制字符串的不同选项的线程。你知道吗

你可以这样试试。你知道吗

import javax.xml.bind.DatatypeConverter
val md = java.security.MessageDigest.getInstance("SHA-1")
val ha = DatatypeConverter.printHexBinary(md.digest("Foo".getBytes))
print(ha)

为了从字符串中创建整数,必须使用BigInteger,因为Int和Long将溢出。你知道吗

val i = new BigInteger(ha, 16)
// this will overflow for this input
val i2 = Integer.parseInt(ha, 16)
import java.lang.{ Long => JLong }
val l = JLong.parseLong(ha, 16)

相关问题 更多 >