Git Product home page Git Product logo

aes's Introduction

AES

AES 算法实现 AES 算法详解

此脚本针对密钥长度为128,所以加密轮数为10轮

使用方法

输入明文,输入密钥。 会返回

  • 明文矩阵
  • 密钥
  • 扩展密钥
  • 密文
  • 轮密钥加
  • 进入第一轮加密
    • 字节代换
    • 行移位
    • 列混淆
  • 进入第二轮加密
  • ……
  • 进入第十轮加密
    • 字节代换
    • 行移位
    • 列混淆
  • 输出密文
  • 输出解密后的明文矩阵
  • 输出原文

事例

~$ python aes.py
请输明文hex,少了会补0: 
49 5f 4c 6f 76 65 5f 63 72 79 70 74 6f 00 00 00
495f4c6f76655f63727970746f000000
495f4c6f76655f63727970746f000000
明文
['0x49', '0x76', '0x72', '0x6f']
['0x5f', '0x65', '0x79', '0x0']
['0x4c', '0x5f', '0x70', '0x0']
['0x6f', '0x63', '0x74', '0x0']


请输密钥hex,少了会补0: 
12 34 56 78 12 34 56 78 12 34 56 78 12 34 56 78
12345678123456781234567812345678
密钥
['0x12', '0x12', '0x12', '0x12']
['0x34', '0x34', '0x34', '0x34']
['0x56', '0x56', '0x56', '0x56']
['0x78', '0x78', '0x78', '0x78']
扩展密钥
['0x12', '0x12', '0x12', '0x12']
['0x34', '0x34', '0x34', '0x34']
['0x56', '0x56', '0x56', '0x56']
['0x78', '0x78', '0x78', '0x78']
['0xaf', '0xae', '0xae', '0xae']
['0x9b', '0x9a', '0x9a', '0x9a']
['0xcd', '0xcc', '0xcc', '0xcc']
['0xb5', '0xb4', '0xb4', '0xb4']
['0x20', '0x23', '0x23', '0x7b']
['0xbb', '0xb9', '0xb9', '0xe1']
['0x76', '0x75', '0x75', '0x2d']
['0xc3', '0xc1', '0xc1', '0x99']
['0x5c', '0x5b', '0xcd', '0x55']
['0xe7', '0xe2', '0x74', '0xb4']
['0x91', '0x97', '0x1', '0x99']
['0x52', '0x56', '0xc0', '0x0']
['0xe5', '0xe1', '0xae', '0x55']
['0x2', '0x3', '0xda', '0xe1']
['0x93', '0x94', '0xdb', '0x78']
['0xc1', '0xc2', '0x1b', '0x78']
['0xd0', '0x4e', '0x12', '0x2d']
['0xd2', '0x4d', '0xc8', '0xcc']
['0x41', '0xd9', '0x13', '0xb4']
['0x80', '0x1b', '0x8', '0xcc']
['0x5f', '0x7e', '0x59', '0xe0']
['0x8d', '0x33', '0x91', '0x2c']
['0xcc', '0xea', '0x82', '0x98']
['0x4c', '0xf1', '0x8a', '0x54']
['0xbe', '0x0', '0x79', '0xc9']
['0x33', '0x33', '0xe8', '0xe5']
['0xff', '0xd9', '0x6a', '0x7d']
['0xb3', '0x28', '0xe0', '0x29']
['0xa', '0xe1', '0xdc', '0xa4']
['0x39', '0xd2', '0x34', '0x41']
['0xc6', '0xb', '0x5e', '0x3c']
['0x75', '0x23', '0xbe', '0x15']
['0x37', '0x4f', '0x85', '0x39']
['0xe', '0x9d', '0xb1', '0x78']
['0xc8', '0x96', '0xef', '0x44']
['0xbd', '0xb5', '0x51', '0x51']
['0xd4', '0x9e', '0x54', '0x43']
['0xda', '0x3', '0xe5', '0x3b']
['0x12', '0x95', '0xa', '0x7f']
['0xaf', '0x20', '0x5b', '0x2e']


最开始的对明文进行轮密钥加
['0x5b', '0x64', '0x60', '0x7d']
['0x6b', '0x51', '0x4d', '0x34']
['0x1a', '0x9', '0x26', '0x56']
['0x17', '0x1b', '0xc', '0x78']
第1轮
字节代换
['0x39', '0x43', '0xd0', '0xff']
['0x7f', '0xd1', '0xe3', '0x18']
['0xa2', '0x01', '0xf7', '0xb1']
['0xf0', '0xaf', '0xfe', '0xbc']
行移位
['0x39', '0x43', '0xd0', '0xff']
['0xd1', '0xe3', '0x18', '0x7f']
['0xf7', '0xb1', '0xa2', '0x01']
['0xbc', '0xf0', '0xaf', '0xfe']
列混合
['0x51', '0xf9', '0x9e', '0x9b']
['0x3e', '0xa6', '0xb2', '0xfc']
['0xc2', '0xd2', '0x7d', '0x9b']
['0xe', '0x6c', '0x94', '0x83']
第2轮
字节代换
['0xbb', '0x5b', '0x04', '0x96']
['0x06', '0xeb', '0x34', '0x33']
['0x76', '0x72', '0xc8', '0x5b']
['0xea', '0x61', '0xb7', '0x9a']
行移位
['0xbb', '0x5b', '0x04', '0x96']
['0xeb', '0x34', '0x33', '0x06']
['0xc8', '0x5b', '0x76', '0x72']
['0x9a', '0xea', '0x61', '0xb7']
列混合
['0x19', '0x5b', '0x4a', '0xf8']
['0xaf', '0x34', '0x99', '0xbb']
['0x6e', '0xfc', '0x78', '0xb6']
['0xda', '0x4d', '0x8b', '0xa0']
第3轮
字节代换
['0x12', '0xbc', '0xf9', '0xec']
['0xfa', '0x5d', '0xb7', '0xbe']
['0xad', '0xa7', '0xd7', '0x14']
['0xd4', '0x64', '0xd6', '0x12']
行移位
['0x12', '0xbc', '0xf9', '0xec']
['0x5d', '0xb7', '0xbe', '0xfa']
['0xd7', '0x14', '0xad', '0xa7']
['0x12', '0xd4', '0x64', '0xd6']
列混合
['0x6', '0x61', '0xf9', '0xa7']
['0xd8', '0x21', '0x16', '0x27']
['0xcc', '0x44', '0xaa', '0x22']
['0x98', '0xcf', '0xcb', '0xc5']
第4轮
字节代换
['0xbe', '0x80', '0x18', '0x89']
['0x75', '0x2e', '0xaa', '0xdc']
['0x4c', '0x66', '0x62', '0xea']
['0x74', '0xee', '0x2b', '0xa6']
行移位
['0xbe', '0x80', '0x18', '0x89']
['0x2e', '0xaa', '0xdc', '0x75']
['0x62', '0xea', '0x4c', '0x66']
['0xa6', '0x74', '0xee', '0x2b']
列混合
['0xd1', '0x60', '0xed', '0xdb']
['0xe2', '0x9e', '0x81', '0xe2']
['0xa5', '0x79', '0x75', '0x4d']
['0xc2', '0x33', '0x7f', '0xc5']
第5轮
字节代换
['0x18', '0x0c', '0x1a', '0x19']
['0xe1', '0x5e', '0x39', '0x7b']
['0x05', '0x55', '0xe4', '0x96']
['0x7b', '0xa1', '0x43', '0x7a']
行移位
['0x18', '0x0c', '0x1a', '0x19']
['0x5e', '0x39', '0x7b', '0xe1']
['0xe4', '0x96', '0x05', '0x55']
['0x7a', '0x7b', '0xa1', '0x43']
列混合
['0x4c', '0xbe', '0x1d', '0x1c']
['0xe9', '0xa4', '0x42', '0x7c']
['0x1b', '0x8f', '0x93', '0x97']
['0x66', '0x4d', '0x9', '0x19']
第6轮
字节代换
['0xde', '0x8c', '0x76', '0xc7']
['0xe2', '0x1e', '0x7e', '0xe7']
['0xbe', '0xb1', '0xcd', '0x26']
['0x8e', '0xb1', '0x7c', '0x03']
行移位
['0xde', '0x8c', '0x76', '0xc7']
['0x1e', '0x7e', '0xe7', '0xe2']
['0xcd', '0x26', '0xbe', '0xb1']
['0x03', '0x8e', '0xb1', '0x7c']
列混合
['0x4b', '0x29', '0xd1', '0x65']
['0xad', '0x94', '0xcb', '0xac']
['0x44', '0x37', '0x3e', '0xd8']
['0xac', '0xd0', '0xba', '0xf9']
第7轮
字节代换
['0xfa', '0x5b', '0xc4', '0x97']
['0xb7', '0x5c', '0xbe', '0xcd']
['0xc4', '0xc1', '0x65', '0x09']
['0xe1', '0xfd', '0x04', '0x95']
行移位
['0xfa', '0x5b', '0xc4', '0x97']
['0x5c', '0xbe', '0xcd', '0xb7']
['0x65', '0x09', '0xc4', '0xc1']
['0x95', '0xe1', '0xfd', '0x04']
列混合
['0xfb', '0x87', '0xe6', '0x32']
['0x78', '0xc6', '0xef', '0xbe']
['0xc8', '0xcf', '0x86', '0xb5']
['0x1d', '0x83', '0xbf', '0xdc']
第8轮
字节代换
['0x6e', '0x17', '0xdb', '0x0f']
['0xb3', '0xe6', '0xc5', '0x39']
['0x9a', '0x47', '0xce', '0xe8']
['0xe4', '0x62', '0xcf', '0xe6']
行移位
['0x6e', '0x17', '0xdb', '0x0f']
['0xe6', '0xc5', '0x39', '0xb3']
['0xce', '0xe8', '0x9a', '0x47']
['0xe6', '0xe4', '0x62', '0xcf']
列混合
['0xc5', '0x76', '0x1e', '0x58']
['0x16', '0x41', '0x7e', '0x74']
['0x3e', '0x2e', '0x6b', '0x78']
['0x4d', '0xc7', '0x11', '0x60']
第9轮
字节代换
['0x8a', '0x88', '0x25', '0xb0']
['0x15', '0xdc', '0xd6', '0x96']
['0x41', '0x3f', '0x96', '0x1b']
['0x07', '0x69', '0x79', '0x9d']
行移位
['0x8a', '0x88', '0x25', '0xb0']
['0xdc', '0xd6', '0x96', '0x15']
['0x96', '0x1b', '0x41', '0x3f']
['0x9d', '0x07', '0x69', '0x79']
列混合
['0x7b', '0x76', '0xc3', '0x2']
['0x15', '0x15', '0xb8', '0xa2']
['0xdd', '0x61', '0x8a', '0x50']
['0xee', '0x40', '0x6a', '0x13']
第10轮
字节代换
['0x29', '0x12', '0x5a', '0xe2']
['0xaf', '0xc4', '0x01', '0x57']
['0x59', '0x68', '0x4d', '0xfa']
['0xed', '0xe6', '0xe2', '0x2c']
行移位
['0x29', '0x12', '0x5a', '0xe2']
['0xc4', '0x01', '0x57', '0xaf']
['0x4d', '0xfa', '0x59', '0x68']
['0x2c', '0xed', '0xe6', '0xe2']
列混合
['0x29', '0x12', '0x5a', '0xe2']
['0xc4', '0x01', '0x57', '0xaf']
['0x4d', '0xfa', '0x59', '0x68']
['0x2c', '0xed', '0xe6', '0xe2']


输出密文
['0xfd', '0x8c', '0xe', '0xa1']
['0x1e', '0x2', '0xb2', '0x94']
['0x5f', '0x6f', '0x53', '0x17']
['0x83', '0xcd', '0xbd', '0xcc']


输出解密后的矩阵
['0x49', '0x76', '0x72', '0x6f']
['0x5f', '0x65', '0x79', '0x0']
['0x4c', '0x5f', '0x70', '0x0']
['0x6f', '0x63', '0x74', '0x0']
输出解密后的原文
I_Love_crypto

aes's People

Contributors

ybm911 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

five-f

aes's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.