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。 –
答案已更新,应完全解答您的问题。 –