2

在 php 中,您可以使用crypt函数并给它一个以“$2a$”开头的盐,以使用 CRYPT_BLOWFISH 对字符串进行加密。

例如。

echo crypt("test", "$2a$13$1mFan0ihXzWfxATGXSKRqe");
//output: $2a$13$1mFan0ihXzWfxATGXSKRqedMoYWoXpPizu4Q274LnpVVJ7gyza3Lq

我尝试使用as3crypto库在 as3 中生成输出。我试过的代码片段。

var key:ByteArray = Hex.toArray("$2a$13$1mFan0ihXzWfxATGXSKRqe");
var blowfish:BlowFishKey = new BlowFishKey(key);
var dataBytes:ByteArray = new ByteArray();
dataBytes.writeUTFBytes("test");
blowfish.encrypt(dataBytes);
var encrypted:String = Hex.fromArray(dataBytes).toUpperCase();
trace(encrypted);
//output: 986C8D386BEAD6AE

我不认为那些河豚密码是一样的。根据 php.net 上的文档,基于 bcrypt 的 php 河豚是一种方法。在 as3 中,我还可以解密加密的消息。

我搜索了在 as3 中提供与 php 中相同的输出但没有成功的河豚库。任何人都知道如何在 actionscript 3.0 中生成与 php 相同的输出?

更新

我正在使用 adobe air。所以原生解决方案也是可以接受的。我可以创建一个本机扩展或使用 NativeProcess 来访问它来进行加密而不是 as3。

更新 2 现在我正在使用在http://derekslager.com/blog/posts/2007/10/bcrypt-dotnet-strong-password-hashing-for-dotnet-and上找到的 bcrypt 类使用 c# 创建的命令行程序-mono.ashx

4

0 回答 0