gpt4 book ai didi

php - 在 ruby​​ 中使用 Blowfish 加密字符串返回的字符串比 php 中的相同进程更短

转载 作者:可可西里 更新时间:2023-11-01 00:17:03 25 4
gpt4 key购买 nike

这让我很困惑。

当我尝试使用以下输入通过 Blowfish 加密字符串时: key =“一些 key ”input = "输入字符串"

我得到以下结果:

ruby: ["79af8c8ee9220bde"]
php: 79af8c8ee9220bdec2d1c9cfca7b13c6

我将从 php 应用程序接收字符串,因此我需要让这两个应用程序同步,但我不明白为什么 php 字符串会更长。我错过了什么?

php代码:

php > require_once 'Crypt/Blowfish.php';
php > $input = "input string";
php > $key = "some key";
php > $crypt = new Crypt_Blowfish($key);
php > echo bin2hex($crypt->encrypt($input));
79af8c8ee9220bdec2d1c9cfca7b13c6

ruby 代码:

irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'crypt/blowfish'
=> true
irb(main):003:0> input = "input string"
=> "input string"
irb(main):004:0> key = "some key"
=> "some key"
irb(main):005:0> blowfish = Crypt::Blowfish.new(key)
=> #<Crypt::Blowfish:0xb74b10c4 @sBoxes=[[3156471959, 1769696695, 1443271708, 181204541,
...... 1894848609], @key="some key">
irb(main):006:0> blowfish.encrypt_block(input)
=> "y\257\214\216\351\"\v\336"
irb(main):007:0> blowfish.encrypt_block(input).unpack("H*")
=> ["79af8c8ee9220bde"]

最佳答案

等等,你的 Ruby 输出是 8 个字节?您输入的是 12 - 这是此处出错的 Ruby 代码。

我没有使用过 Crypt::Blowfish(而且文档很少),但无论如何您可能需要将您的输入填充为 64 位的倍数。

关于php - 在 ruby​​ 中使用 Blowfish 加密字符串返回的字符串比 php 中的相同进程更短,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5465148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com