在Ruby中,您可以使用openssl
库来实现类似于MySQL中AES_ENCRYPT
和AES_DECRYPT
函数的功能。以下是一个简单的示例:
require 'openssl'
require 'base64'
def aes_encrypt(data, key)
cipher = OpenSSL::Cipher.new('AES-128-ECB')
cipher.encrypt
cipher.key = key
encrypted_data = cipher.update(data) + cipher.final
Base64.encode64(encrypted_data)
end
def aes_decrypt(encrypted_data, key)
cipher = OpenSSL::Cipher.new('AES-128-ECB')
cipher.decrypt
cipher.key = key
encrypted_data = Base64.decode64(encrypted_data)
cipher.update(encrypted_data) + cipher.final
end
data = 'Hello, world!'
key = '1234567890123456'
encrypted_data = aes_encrypt(data, key)
puts "Encrypted data: #{encrypted_data}"
decrypted_data = aes_decrypt(encrypted_data, key)
puts "Decrypted data: #{decrypted_data}"
在这个示例中,我们定义了两个函数aes_encrypt
和aes_decrypt
,它们分别用于加密和解密数据。我们使用了openssl
库中的OpenSSL::Cipher
类来创建一个AES-128-ECB密码块加密器,并使用指定的密钥进行加密和解密操作。
请注意,这个示例使用了ECB模式,它不是最安全的加密模式。在实际应用中,您应该使用更安全的加密模式,如CBC或CTR模式。此外,您还应该使用更强的密钥生成方案,如PBKDF2或bcrypt来生成密钥。
领取专属 10元无门槛券
手把手带您无忧上云