欢迎来到天天文库
浏览记录
ID:40566811
大小:55.69 KB
页数:11页
时间:2019-08-04
《SHA-1(安全哈希算法实现)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SHA-1(安全哈希算法实现)如题,不知道sha-1的自己百度吧。1#include2#include//定义vector数组3#include//记录消息4usingnamespacestd;56constintNUM=8;//一个字由32比特(或者8个16进制数)7constintBIT=512;//消息认证码要以512比特一组89//字常量10stringH0="67452301";11stringH1="EFCDAB89";12stringH2="98BADCFE";13stringH3="10325476";14stringH
2、4="C3D2E1F0";1516//定义SHA1(安全哈希算法)类17classSHA118{19public:20//将一个字符串形式的字转化为vector数组21vectorhex_into_dec(stringword);2223//将vector转化为string字符串形式24stringnum_into_message(vectorA);2526//两个字X和Y的逻辑"和"27vectorword_AND(vectorA,vectorB);2829//两个字X和Y的逻辑"或"30vectorword_OR(vecto
3、rA,vectorB);3132//两个字X和Y的逻辑"异或"33vectorword_XOR(vectorA,vectorB);3435//两个字X和Y的逻辑"补"36vectorword_COMPLEMENT(vectorA);3738//两个字X和Y的摸2^32整数加39vectorword_ADD(vectorA,vectorB);4041//将字X循环左移s个位置42vectorROTL(vectorA,ints);4344//SHA-1的填充方案,我们设定m
4、sg由ASCII码组成45vector>SHA_1_PAD(stringmsg);4647//将SHA-1压成以字为单位48vector>>compress(vector>result);4950//定义ft函数,每个ft函数都有B,C,D三个字作为输入,并产生一个字作为输出51vectorFt(intt,vectorB,vectorC,vectorD);5253//定义字常数K54vectorK(intt);5556//开始进行SHA-1(安全Hash
5、算法)的加密57vector>SHA_1(stringmsg);5859};6061//将vector转化为string字符串形式62stringSHA1::num_into_message(vectorA)63{64inti;65stringmsg="";66for(i=0;i=0&&A[i]<=9)69msg+='0'+A[i];70elseif(A[i]>=10&&A[i]<=15)71msg+='A'+(A[i]-10);72}73returnmsg;74}7576//将一个字符串形式的字转化
6、为vector数组77vectorSHA1::hex_into_dec(stringword)78{79inti;80vectorresult(NUM,0);81for(i=0;i='0'&&word[i]<='9')84{85result[i]=word[i]-'0';86}87elseif(word[i]>='A'&&word[i]<='F')88{89result[i]=10+word[i]-'A';90}91}92returnresult;93}9495//两个字X和Y的逻辑"和"96vectorSH
7、A1::word_AND(vectorA,vectorB)97{98vectorresult(NUM,0);99inti;100for(i=0;iSHA1::word_OR(vectorA,vector
此文档下载收益归作者所有