Javascript实现Aes加密43819.docx
- 文档编号:594537
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:5
- 大小:24.01KB
Javascript实现Aes加密43819.docx
《Javascript实现Aes加密43819.docx》由会员分享,可在线阅读,更多相关《Javascript实现Aes加密43819.docx(5页珍藏版)》请在冰豆网上搜索。
Javascript实现Aes加密43819
JAVAScript实现AES加密
1、aes.js文件源码
varpassword='L0ckitupsaf3'; varplaintext='pssst...đon’ttellanyøne!
'; varciphertext=,password,256); varorigtext=,password,256);
/*----------------------------------------------- *//* AESimplementationinJavaScript(c)ChrisVeness2005-2011 *//* -see/PubsFIPS.html#197 *//*----------------------------------------------- */varAes={}; //Aesnamespace/** *AESCipherfunction:
encrypt'input'statewithRijndaelalgorithm * appliesNrrounds(10/12/14)usingkeyschedulewfor'addroundkey'stage * *@param{Number[]}input16-byte(128-bit)inputstatearray *@param{Number[][]}w Keyscheduleas2Dbyte-array(Nr+1xNbbytes) *@returns{Number[]} Encryptedoutputstatearray */Aes.cipher=function(input,w){ //mainCipherfunction[§5.1] varNb=4; //blocksize(inwords):
noofcolumnsinstate(fixedat4forAES) varNr=w.length/Nb-1;//noofrounds:
10/12/14for128/192/256-bitkeys varstate=[[],[],[],[]]; //initialise4xNbbyte-array'state'withinput[§3.4] for(vari=0;i<4*Nb;i++)state[i%4][Math.floor(i/4)]=input[i]; state=Aes.addRoundKey(state,w,0,Nb); for(varround=1;round noofcolumnsinstate(fixedat4forAES) varNk=key.length/4 //keylength(inwords): 4/6/8for128/192/256-bitkeys varNr=Nk+6; //noofrounds: 10/12/14for128/192/256-bitkeys varw=newArray(Nb*(Nr+1)); vartemp=newArray(4); for(vari=0;i returns; //see}Aes.mixColumns=function(s,Nb){ //combinebytesofeachcolofstateS[§ for(varc=0;c<4;c++){ vara=newArray(4); //'a'isacopyofthecurrentcolumnfrom's' varb=newArray(4); //'b'isa•{02}inGF(2^8) for(vari=0;i<4;i++){ a[i]=s[i][c]; b[i]=s[i][c]&0x80? s[i][c]<<1^0x011b: s[i][c]<<1; } //a[n]^b[n]isa•{03}inGF(2^8) s[0][c]=b[0]^a[1]^b[1]^a[2]^a[3];//2*a0+3*a1+a2+a3 s[1][c]=a[0]^b[1]^a[2]^b[2]^a[3];//a0*2*a1+3*a2+a3 s[2][c]=a[0]^a[1]^b[2]^a[3]^b[3];//a0+a1+2*a2+3*a3 s[3][c]=a[0]^b[0]^a[1]^a[2]^b[3];//3*a0+a1+a2+2*a3 } returns;}Aes.addRoundKey=function(state,w,rnd,Nb){ //xorRoundKeyintostateS[§ for(varr=0;r<4;r++){ for(varc=0;c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Javascript 实现 Aes 加密 43819