首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Ruby中模仿AES_ENCRYPT和AES_DECRYPT函数

在Ruby中,您可以使用openssl库来实现类似于MySQL中AES_ENCRYPTAES_DECRYPT函数的功能。以下是一个简单的示例:

代码语言:ruby
复制
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_encryptaes_decrypt,它们分别用于加密和解密数据。我们使用了openssl库中的OpenSSL::Cipher类来创建一个AES-128-ECB密码块加密器,并使用指定的密钥进行加密和解密操作。

请注意,这个示例使用了ECB模式,它不是最安全的加密模式。在实际应用中,您应该使用更安全的加密模式,如CBC或CTR模式。此外,您还应该使用更强的密钥生成方案,如PBKDF2或bcrypt来生成密钥。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券