public class SHA1 {
public static void main(String[] args) {
String message="SHA-1 is finished";
System.out.println("输入消息:"+message);
String AA="67452301",BB="efcdab89",CC="98badcfe",DD="10325476",EE="c3d2e1f0";
String k1="5a827999",k2="6ed9eba1",k3="8f1bbcdc",k4="ca62c1d6";
String A[]=strTo32(AA);String B[]=strTo32(BB);
String C[]=strTo32(CC);String D[]=strTo32(DD);String E[]=strTo32(EE);
String K1[]=strTo32(k1);String K2[]=strTo32(k2);String K3[]=strTo32(k3);String K4[]=strTo32(k4);//二进制数组K
String sBin[]=new String [512] ;
sBin=strToBin(message);//一位字符转8位二进制
String s512[]=amplify(sBin,message.length());//sBin被改变512位
String W[][]=getW(toStr(s512));//获取W
int i=0;String a[]=A,b[]=B,c[]=C,d[]=D,e[]=E;
while(i<20) {
String temp[]=new String [32];
String stem=add(add(add(add(toStr(leftShift5(a)),toStr(f1(b,c,d))),toStr(e)),toStr(W[i])),toStr(K1));int k=0;
while(k<32) {
temp[k]=String.valueOf(stem.charAt(k));
k=k+1;
}
e=d;d=c;c=leftShift30(b);b=a;a=temp;i++;
}
while(i<40) {
String temp[]=new String [32];
String stem=add(add(add(add(toStr(leftShift5(a)),toStr(f1(b,c,d))),toStr(e)),toStr(W[i])),toStr(K2));int k=0;
while(k<32) {
temp[k]=String.valueOf(stem.charAt(k));
k=k+1;
}
e=d;d=c;c=leftShift30(b);b=a;a=temp;i++;
}
while(i<60) {
String temp[]=new String [32];
String stem=add(add(add(add(toStr(leftShift5(a)),toStr(f1(b,c,d))),toStr(e)),toStr(W[i])),toStr(K3));int k=0;
while(k<32) {
temp[k]=String.valueOf(stem.charAt(k));
k=k+1;
}
e=d;d=c;c=leftShift30(b);b=a;a=temp;i++;
}
while(i<80) {
String temp[]=new String [32];
String stem=add(add(add(add(toStr(leftShift5(a)),toStr(f1(b,c,d))),toStr(e)),toStr(W[</
java SHA-1实现 信息摘要
最新推荐文章于 2024-08-25 02:09:50 发布
本文详细介绍了如何在Java中使用内置库实现SHA-1哈希算法,以创建和验证信息摘要,确保数据完整性。
摘要由CSDN通过智能技术生成