I've tried this, however its not decrypting on the javascript side:
python:
Code:
import os, random, struct
from Crypto.Cipher import AES
from Crypto import Random
import base64
class AESCipher:
def __init__(self, key):
BS = 16
self.pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
self.unpad = lambda s : s[0:-ord(s[-1])]
self.key = self.pad(key[0:16])
def encrypt(self, raw):
raw = self.pad(raw)
iv = "1011121314151617"
cipher = AES.new(self.key, AES.MODE_CBC, iv)
return base64.b64encode(iv + cipher.encrypt(raw))
def decrypt(self, enc):
enc = enc.replace(' ', '+')
enc = base64.b64decode(enc)
iv = enc[:16]
cipher = AES.new(self.key, AES.MODE_CBC, iv)
return self.unpad(cipher.decrypt( enc[16:]))
def main():
cipher = AESCipher('824601be6c2941fabe7fe256d4d5a2b7')
encrypteddata = cipher.encrypt('Secreat Message to Encrypt')
print encrypteddata
decryptdata =cipher.decrypt(encrypteddata)
print decryptdata
main()
javascript
:
Code:
<html>
<head>
<script src="js/rollups/aes.js" ></script>
<script>
var iv = CryptoJS.enc.Hex.parse('1011121314151617');
var key = CryptoJS.enc.Hex.parse('824601be6c2941fabe7fe256d4d5a2b7');
var encrypted = CryptoJS.enc.Hex.parse('MTAxMTEyMTMxNDE1MTYxN3U1X+MdhNxr/UVOSBkUQuuZHhyN0uMjlj+nnFBpGGSC');
var decrypted = CryptoJS.AES.decrypt(encrypted, key, {iv: iv, mode: CryptoJS.mode.CBC}).toString(CryptoJS.enc.Utf8);
console.log('my message');
console.log("msg: " + CryptoJS.enc.Hex.stringify(decrypted));
// Lorem ipsum dolor sit amet, ...
</script>
</head>
<body></body>
</html>
OP:
Code:
main.html:15 my message
main.html:16 msg: