码迷,mamicode.com
首页 > 其他好文 > 详细

Pycrypto实现AES加解密

时间:2014-12-06 14:04:19      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   os   sp   on   div   

JS实现AES过程。

function getAesString(str,keyObj) {
    var lengthKeyObj = keyObj||get_rand_key(0);
    var key = CryptoJS.enc.Hex.parse(lengthKeyObj.rand_key);
    var iv = CryptoJS.enc.Latin1.parse("1234567890abcdef");
    var encrypted = CryptoJS.AES.encrypt(str, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    var cipher_text = encrypted.ciphertext.toString();
    return lengthKeyObj.key_index + cipher_text;
}

 

以下通过python pycrypto库实现

python 2.7没有pycrypto标准库,需要另外安装。

#pkcs7
BS = AES.block_size
pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
unpad = lambda s : s[0:-ord(s[-1])]
 
key = os.urandom(16) #random
text = password 
 
cipher = AES.new(key)
encrypted = cipher.encrypt(pad(text)).encode(hex)
print encrypted‘
decrypted = unpad(cipher.decrypt(encrypted.decode(hex)))
print decrypted  

修改代码如下:

BS = AES.block_size
pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
unpad = lambda s : s[0:-ord(s[-1])]

org_pass = 1234567890abcdef
mode = AES.MODE_CBC
iv = 1234567890abcdef

cipher = AES.new( aes_rand_key.decode(hex),mode,iv)
encrypted = cipher.encrypt(pad(org_pass)).encode(hex)

decrypted = unpad(cipher.decrypt(encrypted.decode(hex)))
print decrypted 

login_pass = rand_key2 + encrypted 

 

Pycrypto实现AES加解密

标签:style   blog   io   ar   color   os   sp   on   div   

原文地址:http://www.cnblogs.com/wangjibo/p/4148178.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!