我正在编写代码以使用 java 生成 SHA-1 校验和。我提到了这个链接http://code.wikia.com/wiki/SHA_checksum。我的java代码如下:
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class SHAHashing{
public static void main(String[] args)throws Exception{
String password = "ABC0010|txnpassword|0|Test Reference|1.00|20110616221931";
MessageDigest md = MessageDigest.getInstance("SHA-1");
md.update(password.getBytes("UTF-8"));
System.out.println("Converting SHA digest output to Hex String : "+byteArrayToHexString(SHAsum(password.getBytes("UTF-8"))));
System.out.println("Converting md.digest output to Hex String : "+byteArrayToHexString(md.digest()));
}
public static byte[] SHAsum(byte[] convertme) {
MessageDigest md = null;
try {
md = MessageDigest.getInstance("SHA-1");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return md.digest(convertme);
}
public static String byteArrayToHexString(byte[] b) {
String result = "";
for (int i=0; i < b.length; i++) {
result += Integer.toString( ( b[i] & 0xff ) + 0x100, 16).substring( 1 );
}
return result;
}
}
上面的输出是:
将 SHA 摘要输出转换为十六进制字符串:
7871d5c9a366339da848fc64cb32f6a9ad8fcadd
将 md.digest 输出转换为十六进制字符串:7871d5c9a366339da848fc64cb32f6a9ad8fcadd
我有一个输入字符串:"ABC0010|txnpassword|0|Test Reference|1.00|20110616221931"
其对应的输出是:01a1edbb159aa01b99740508d79620251c2f871d
根据我用来生成指纹的参考文档。
任何人都可以提供有关上述内容的见解。