资源描述:
《java实现aes加密和解密》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、Java实现AES加密和解密经过三周的不懈努力,终于完成了AES对任意格式的文件加密和解密。现在将自己的学习经历记下来,纪念自己三周的付出。同时也感谢网上的各位大神的博客,让我学到了很多。下面就将AES的各个构件的核心代码粘贴如下,每行代码都有详细的注释!packagemyAes;/* *本类完成AES的加密和解密的流程//内容参考:http://blog.csdn.net/xiaaiwu/article/details/42747229 **/publicclassmyAes{privatebyteState[][];//明文的状态表privatebyteSbox[][];//S盒
2、子privatebyteiSbox[][];//逆S盒子privatebytekey[];//密钥privateintNk;//密钥长度privateintNr;//对不同的长度的密钥不同的轮数privatebytew[][];//密钥调度表privatebyteRcon[][];//轮常数表privateintNb;//明文列数//构造函数publicmyAes(byte[]keyBytes,intkeySize){this.Nb=4;//只处理明文是128位为一组if(keySize==128){this.Nk=4;this.Nr=10;}elseif(keySize==192)
3、{//System.out.println("密钥长度位192位");this.Nk=6;this.Nr=12;}elseif(keySize==256){this.Nk=8;this.Nr=14;}this.key=newbyte[this.Nk*4];this.key=keyBytes;createSbox();//创建S盒子的方法createISbox();//创建S逆盒子的方法createRcon();//创建轮常数数组的方法keyExtend();//密钥扩展的方法}//初始化S盒子privatevoidcreateSbox(){this.Sbox=newbyte[][]{
4、{0x63,0x7c,0x77,0x7b,(byte)0xf2,0x6b,0x6f,(byte)0xc5,0x30,0x01,0x67,0x2b,(byte)0xfe,(byte)0xd7,(byte)0xab,0x76},{(byte)0xca,(byte)0x82,(byte)0xc9,0x7d,(byte)0xfa,0x59,0x47,(byte)0xf0,(byte)0xad,(byte)0xd4,(byte)0xa2,(byte)0xaf,(byte)0x9c,(byte)0xa4,0x72,(byte)0xc0},{(byte)0xb7,(byte)0xfd,(byte)
5、0x93,0x26,0x36,0x3f,(byte)0xf7,(byte)0xcc,0x34,(byte)0xa5,(byte)0xe5,(byte)0xf1,0x71,(byte)0xd8,0x31,0x15},{0x04,(byte)0xc7,0x23,(byte)0xc3,0x18,(byte)0x96,0x05,(byte)0x9a,0x07,0x12,(byte)0x80,(byte)0xe2,(byte)0xeb,0x27,(byte)0xb2,0x75},{0x09,(byte)0x83,0x2c,0x1a,0x1b,0x6e,0x5a,(byte)0xa0,0x52,
6、0x3b,(byte)0xd6,(byte)0xb3,0x29,(byte)0xe3,0x2f,(byte)0x84},{0x53,(byte)0xd1,0x00,(byte)0xed,0x20,(byte)0xfc,(byte)0xb1,0x5b,0x6a,(byte)0xcb,(byte)0xbe,0x39,0x4a,0x4c,0x58,(byte)0xcf},{(byte)0xd0,(byte)0xef,(byte)0xaa,(byte)0xfb,0x43,0x4d,0x33,(byte)0x85,0x45,(byte)0xf9,0x02,0x7f,0x50,0x3c,(byt
7、e)0x9f,(byte)0xa8},{0x51,(byte)0xa3,0x40,(byte)0x8f,(byte)0x92,(byte)0x9d,0x38,(byte)0xf5,(byte)0xbc,(byte)0xb6,(byte)0xda,0x21,0x10,(byte)0xff,(byte)0xf3,(byte)0xd2},{(byte)0xcd,0x0c,0x13,(byte)0xec,0x5f,(byte)0x97,0x44,0x17,(byt