簡體   English   中英

如何解密由Rails(Aes Gem)加密的消息(使用PHP)?

[英]How to decrypt a message(using php) encrypt by rails(aes gem)?

我使用AES( http://rubygems.org/gems/aes )加密了一些消息,

@key="f6c57ea9f82731d3e125b4d2618423c0" #(it is 32 long, but i wonder how many bit it is in php?)
@message="123;456"
@str=AES.encrypt(@message,@key)
  #=>"sGvYXk3LhU30xge4rKcYYA==$yypKQjUvUF95YoiVfdbyPA==" ##init_vector and cipher_text are joined with "$"

我將@str傳遞給一個php文件,但它無法解密,所有內容都混在php中。 為什么@str在每次加密時使用相同的消息和密鑰時會有所不同?

的PHP

$str="yypKQjUvUF95YoiVfdbyPA==";
$iv_dec="sGvYXk3LhU30xge4rKcYYA==";
$key="f6c57ea9f82731d3e125b4d2618423c0";
$message=mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key,
                                $str, MCRYPT_MODE_CBC, $iv_dec);

##Puts out:  PHP Warning:  mcrypt_decrypt(): The IV parameter must be as long as the blocksize                   

有人可以幫忙嗎?

謝謝。

PHP代碼至少有3件事是錯誤的:

  1. 您正在使用的不是AES的MCRYPT_RIJNDAEL_256 ,是AES的MCRYPT_RIJNDAEL_128
  2. 您需要從十六進制值解碼密鑰(因此它實際上是16 個字節長,因此正在使用AES-128);
  3. 您需要基於64位解碼IV和密文。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM