小编Dee*_*Jha的帖子

Rijndael Ruby 中的 AES-128 加密解密

我想在 ruby​​ 中使用 rijndael aes128 进行加密。我有这个代码:

cipher = OpenSSL::Cipher::Cipher.new("aes-128-cbc")
cipher.encrypt
cipher.key = 'abcdef0123456789abcdef0123456789'
cipher.iv = '0000000000000000'
encrypted =   cipher.update('2~1~000024~0910~20130723092446~T~00002000~USD~F~375019001012120~0~0~00000000000~')
encrypted << cipher.final
Run Code Online (Sandbox Code Playgroud)

这是行不通的。但是使用这个 PHP 函数:

<?php 
 function hex2bin($hex_string) 
  {
     return pack('H*', $hex_string);
  } 
 $data_to_encrypt = '2~1~000024~0910~20130723092446~T~00002000~USD~F~375019001012120~0~0~00000000000~';
  $key = 'abcdef0123456789abcdef0123456789'; 
  $iv = '0000000000000000'; 
  $key = hex2bin($key);
  $iv = hex2bin($iv); 
  $data_encrypted = bin2hex(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data_to_encrypt, MCRYPT_MODE_CBC, $iv));
  echo "Data encrypted: ".strtoupper($data_encrypted)."<br/>"; echo "Length: ".strlen($data_encrypted)."<br/>";
  ?>
Run Code Online (Sandbox Code Playgroud)

我得到了我想要的输出:

0D5835AFEBEE04C6DC2421538DB7C38A1283970EB31F21A47D2E3CC623D29EF0461279C7ACF93B031BE2B69CE45C9339554957F29EF609F019EEC975983A03B537622D7E0F196BE148F1C7CBB88E602A
Run Code Online (Sandbox Code Playgroud)

我怎样才能让我的 Ruby 代码产生相同的输出?

php ruby openssl aes rijndael

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

ruby 1.8.7的正则表达式代码

我是正则表达的新手

我正在尝试为我的ruby代码编写一个正则表达式,用于检测双引号逗号之间的双重引号.

我有这个正则表达式在ruby 1.9.3中运行良好

 /(?<!^|,)"(?!,|$)/
Run Code Online (Sandbox Code Playgroud)

对于这个数组字符串.

s =("name:","1234",,, "SM red"B"Tease")

斜体s [4]在双引号中有双重逗号.

在ruby 1.9.3中,上面写的正则表达式检测s [4]即("B")

我试图为ruby 1.8.7编写这个正则表达式,它给出了错误

 Undefined (?...) sequence. You might be trying to use named groups with Ruby 1.8.7.
Run Code Online (Sandbox Code Playgroud)

非常感谢你帮助我为ruby 1.8.7编写这个正则表达式代码

我希望这个数组字符串为

s =("name:","1234",,, "SM red B Tease")

这样我就可以轻松地将它作为.csv文件导入我的程序.

ruby regex

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

标签 统计

ruby ×2

aes ×1

openssl ×1

php ×1

regex ×1

rijndael ×1