>我有一个这样的代码
message = "abc".encode()
messageDigest = java.security.MessageDigest.getInstance("SHA-256")
messageDigest.update(message)
hashdata = messageDigest.digest()
在这里,我打印hashdata
我得到<<java class 'byte[]'> at 0x7f1ee005df60>
但我需要它的价值。我怎样才能得到它的价值?
目前我们不支持 Java 字节数组的__bytes__
运算符,但使用定制器很容易添加。
import jpype
from jpype import java
# Add the customizer before starting the JVM
@jpype.JImplementationFor('byte[]')
class ByteConverter(object):
def __bytes__(self):
return bytes(self[:])
# Now start the JVM
jpype.startJVM(convertStrings=False)
# Perform Java operations
message = "abc".encode()
messageDigest = java.security.MessageDigest.getInstance("SHA-256")
messageDigest.update(message)
hashdata = messageDigest.digest()
# We got back a Java byte[] and we would like a Python bytes
print(bytes(hashdata))
试试这个
for (int i = 0; i < hash.length; i++) {
if ((0xff & hash[i]) < 0x10) {
hexString.append("0"
+ Integer.toHexString((0xFF & hash[i])));
} else {
hexString.append(Integer.toHexString(0xFF & hash[i]));
}
}