1
我是Ruby的新手,所以如果這個問題很簡單,我很抱歉。我必須更新一個Rails應用程序,以便使用密鑰來加密字符串。這被傳遞給一個用django寫的api,在那裏加密的字符串將使用相同的密鑰進行解密。我在Python中有以下代碼,但我不確定如何在Ruby中加密關聯的消息。任何幫助,將不勝感激。在Ruby中加密字符串並在Python中解密
import base64
from Crypto.Cipher import AES
from Crypto import Random
class AESCipher:
def __init__(self, key):
self.key = key
def encrypt(self, raw):
raw = pad(raw)
iv = Random.new().read(AES.block_size)
cipher = AES.new(self.key, AES.MODE_CBC, iv)
return base64.b64encode(iv + cipher.encrypt(raw))
def decrypt(self, enc):
enc = base64.b64decode(enc)
iv = enc[:16]
cipher = AES.new(self.key, AES.MODE_CBC, iv)
return unpad(cipher.decrypt(enc[16:]))
我認爲這對日常Ruby用戶來說確實不是一個簡單的問題。也許將加密/解密委派給底層系統更容易(即運行shell命令)。這樣Ruby和Python都可以使用相同的API。 –
答案已更新,應完全解答您的問題。 –