字符串CryptoJS前台加密,pycrypto后台解密(备份一下)
2017-11-08 20:23
501 查看
最近我想做一个前台加密,后台解密的功能,网上找了好久都不怎么好用。本人也不了解加密算法,只有自己摸索。
写完记录一下
——————————————————————
代码只是个例子,没有前后台交互
我用的是pycrypto需要安装,我用的是pycrypto-2.6.1.tar.gz,
安装pycrypto-2.6.1.tar.gz需要pyasn1-0.3.7.tar.gz
python 代码
from Crypto.Cipher import AES
def cryptoDe(pwd):
print "#######################"
print pwd
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])]
mode = AES.MODE_CBC
cipher = AES.new('1234567890000000',mode,'1234567890000000')
decrypted = unpad(cipher.decrypt(pwd.decode('hex')))
print decrypted
print "#######################"
return decrypted
前台代码
我用的是CryptoJS v3.1.2插件
写完记录一下
——————————————————————
代码只是个例子,没有前后台交互
我用的是pycrypto需要安装,我用的是pycrypto-2.6.1.tar.gz,
安装pycrypto-2.6.1.tar.gz需要pyasn1-0.3.7.tar.gz
python 代码
from Crypto.Cipher import AES
def cryptoDe(pwd):
print "#######################"
print pwd
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])]
mode = AES.MODE_CBC
cipher = AES.new('1234567890000000',mode,'1234567890000000')
decrypted = unpad(cipher.decrypt(pwd.decode('hex')))
print decrypted
print "#######################"
return decrypted
前台代码
我用的是CryptoJS v3.1.2插件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="lib/CryptoJS v3.1.2/rollups/aes.js"></script> </head> <body> <script> //aes加密 function encrypt(word) { var key = CryptoJS.enc.Utf8.parse("1234567890000000"); //16位 var iv = CryptoJS.enc.Utf8.parse("1234567890000000"); var encrypted = ''; if (typeof(word) == 'string') { var srcs = CryptoJS.enc.Utf8.parse(word); encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); } else if (typeof(word) == 'object') { //对象格式的转成json字符串 data = JSON.stringify(word); var srcs = CryptoJS.enc.Utf8.parse(data); encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }) } return encrypted.ciphertext.toString(); } // aes解密 function decrypt(word) { var key = CryptoJS.enc.Utf8.parse("1234567890000000"); var iv = CryptoJS.enc.Utf8.parse("1234567890000000"); var encryptedHexStr = CryptoJS.enc.Hex.parse(word); var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr); var decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); return decryptedStr.toString(); } </script> <script> var str = "222"; var encrypted = encrypt(str); var decrypt = decrypt(encrypted.toString()); document.writeln("aes cbc 加密 解密"); document.writeln("<br/>"); document.writeln("待加密:" + str); document.writeln("<br/>"); document.writeln("加密的密文:".concat(encrypted)); document.writeln("<br/>"); document.writeln("解密密文的结果:" + decrypt); </script> </body> </html>
相关文章推荐
- AES 后台加密 CryptoJS 前台解密demo
- JS实现BASE64加密解密-后台加密前台解密案例分析
- 关于使用JS前台加密、JAVA后台解密的RSA实现,RSA加密和签名
- rsa实现js前台加密java后台解密
- RSA基于Java Web的前台公钥加密后台私钥解密
- js前台加密 java后台解密(des)
- js前台加密传输到后台C#解密
- 注册时候使用 RSA 实现前台对密码加密和后台解密
- rsa实现js前台加密java后台解密
- Des前台加密、后台解密Demo
- 关于使用JS前台加密、JAVA后台解密的RSA实现,RSA加密和签名
- JS前台加密,java后台解密实现
- AES加密解密——AES在JavaWeb项目中前台JS加密,后台Java解密的使用
- JS前台加密,java后台解密实现
- AES加密解密——AES在JavaWeb项目中前台JS加密,后台Java解密的使用
- JS前台加密,java后台解密实现
- rsa实现js前台加密java后台解密
- RSA前台js加密,后台C#解密
- rsa实现js前台加密java后台解密
- crypto前台AES加密,后台AES解密