java SHA-1实现 信息摘要

本文详细介绍了如何在Java中使用内置库实现SHA-1哈希算法,以创建和验证信息摘要,确保数据完整性。
摘要由CSDN通过智能技术生成
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[</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值