1 / 15
文档名称:

Javascript实现Aes加密9.doc

格式:doc   大小:98KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Javascript实现Aes加密9.doc

上传人:ipod0c 2017/9/20 文件大小:98 KB

下载得到文件列表

Javascript实现Aes加密9.doc

相关文档

文档介绍

文档介绍:JAVAScript实现AES加密
1、
var password = 'L0ck it up saf3';
  var plaintext = 'pssst ... đon’t tell anyøne!';
  var ciphertext = (plaintext, password, 256);
  var origtext = (ciphertext, password, 256);
 
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  */
/*  AES implementation in JavaScript (c) Chris Veness 2005-2011                                   */
/*   - see #197                                    */
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  */
var Aes = {};  // Aes namespace
/**
 * AES Cipher function: encrypt 'input' state with Rijndael algorithm
 *   applies Nr rounds (10/12/14) using key schedule w for 'add round key' stage
 *
 * ***@param {Number[]} input 16-byte (128-bit) input state array
 * ***@param {Number[][]} w   Key schedule as 2D byte-array (Nr+1 x Nb bytes)
 * ***@returns {Number[]}     Encrypted output state array
 */
= function(input, w) {    // main Cipher function [§]
  var Nb = 4;               // block size (in words): no of columns in state (fixed at 4 for AES)
  var Nr = - 1; // no of rounds: 10/12/14 for 128/192/256-bit keys
  var state = [[],[],[],[]];  // initialise 4xNb byte-array 'state' with input [§]
  for (var i=0; i<4*Nb; i++) state[i%4][(i/4)] = input
[i];
  state = (state, w, 0, Nb);
  for (var round=1; round<Nr; round++) {
    state = (state, Nb);
    state = (state, Nb);
    state = (state, Nb);
    state = (state, w, round, Nb);
  }
  state = (state, Nb);
  state = (state, Nb);
  state = (state, w, Nr, Nb);
  var output = new Array(4*Nb);  // convert state to 1-d array before returning [§]
  for (var i=0; i<4*Nb; i++) output[i] = state[i%4][(i/4)];