小编Ste*_*nie的帖子

如何将128 CFB转换为Ruby?

我需要与PHP API进行交换,该API会对请求和答案进行加密.在我这边我是在rails 4.0.0(ruby 2.0),我无法使它工作.

我已经阅读了很多关于这个主题的答案,并试图了解mcrypt的工作原理,例如http://www.chilkatsoft.com/p/php_aes.asp,但没有成功.我仍然无法解密从PHP加密或加密PHP可以解密的东西

你能帮助我,看看我做错了什么吗?

PHP代码:

$secretKey = "1234567891234567";
$encrypt = urlencode( base64_encode( mcrypt_encrypt(
             MCRYPT_RIJNDAEL_128,
             md5($secretKey),
             $cleartext,
             MCRYPT_MODE_CFB,
             $secretKey
           ) ) );

$input = urldecode($input);
$decrypt = mcrypt_decrypt( MCRYPT_RIJNDAEL_128,
                           md5($secretKey),
                           base64_decode($input),
                           MCRYPT_MODE_CFB,
                           $secretKey );
Run Code Online (Sandbox Code Playgroud)

Ruby代码:

def self.encode(params = {})
  cipher = OpenSSL::Cipher::AES.new(256, :CFB)
  cipher.encrypt
  cipher.key = Digest::MD5.hexdigest("1234567891234567")
  cipher.iv = "1234567891234567"
  encrypted = cipher.update(params.to_query) + cipher.final

  CGI.escape(Base64.strict_encode64(encrypted))
end

def self.decode(answer)
  decrypted = Base64.decode64(CGI.unescape(answer))

  decipher = OpenSSL::Cipher::AES.new(256, :CFB)
  decipher.decrypt
  decipher.key = Digest::MD5.hexdigest("1234567891234567")
  decipher.iv = "1234567891234567"
  decoded = decipher.update(decrypted) + …
Run Code Online (Sandbox Code Playgroud)

php ruby encryption aes mcrypt

5
推荐指数
1
解决办法
574
查看次数

标签 统计

aes ×1

encryption ×1

mcrypt ×1

php ×1

ruby ×1