相关疑难解决方法(0)

SHA512与Blowfish和Bcrypt

我正在看哈希算法,但找不到答案.

  • Bcrypt使用Blowfish
  • 河豚比MD5好
  • 问:但是Blowfish比SHA512好吗?

谢谢..

更新:

我想澄清一点,我理解散列和加密之间的区别.是什么促使我这样问这个问题的是这篇文章,作者将bcrypt称为"自适应散列"

由于bcrypt基于Blowfish,因此我认为Blowfish是一种哈希算法.如果它的答案已经指出加密,那么在我看来它应该不会在本文中占有一席之地.更糟糕的是,他总结说bcrypt是最好的.现在让我感到困惑的是phpass类(我相信用于密码哈希)使用bcrypt(即河豚,即加密).根据这些新信息,你们告诉我(河豚是加密),这个类听起来不对.我错过了什么吗?

security encryption passwords hash

221
推荐指数
3
解决办法
12万
查看次数

使用PHP的crypt的河豚盐的正确格式是什么?

我已经阅读了PHP手册输入中crypt()提供的信息,但我发现自己仍然不确定触发Blowfish算法的salt的格式.

根据手动输入,我应该使用'$ 2 $'或'$ 2a $'作为16个字符串的开头.然而,在以后的例子中,他们使用更长的字符串:" $2a$07$usesomesillystringforsalt$",这表明,我认为任何字符串我提供将切片和切块以适应模型.

我遇到的问题实际上是触发河豚算法中VS STD_DES.例:

$foo = 'foo';
$salt = '$2a$' . hash('whirlpool', $foo); // 128 characters, will be truncated
$hash = crypt($foo, $salt); 
// $hash = $26HdMTpoODt6
Run Code Online (Sandbox Code Playgroud)

那哈希显然不是漩涡,事实上STD_DES只有盐的前两个字符用于盐.但是,在PHP手册的例子中,他们的盐以' $2a$07$' 开头,所以如果我将这三个字符添加到相同的代码中,我得到以下内容:

$foo = 'foo';
$salt = '$2a$' . hash('whirlpool', $foo); // 128 characters, will be truncated
$hash = crypt($foo, $salt); 
// $hash = $2a$07$b1b2ee48991281a439da2OHi1vZF8Z2zIA.8njYZKR.9iBehxLoIC
Run Code Online (Sandbox Code Playgroud)

我发现我可以提供在此处显示为"人物存在一些差异07$",例如04$15$两个工作,但01$通过03$不工作(生成一个空字符串),和值等99$,并85$ …

php hash crypt blowfish salt

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

如何在C#中使用BouncyCastle进行Blowfish单向散列?

我看过很多关于Blowfish和C#的问题,通常的答案是BouncyCastle.但是,该项目基本上没有文档,我无法找到目录结构,甚至找不到单元测试作为示例.我的意思是,Blowfish被称为Asn1,Bcpg,Crypto(一般来说?),EC,Ocsp,Pkcs还是什么?我缺乏了解源代码中所有缩略词含义的领域知识.

是否有任何有用的文章或博客或成功使用C#BouncyCastle API for Blowfish?我的主要需求是使用Blowfish进行密码散列.

c# hash blowfish bouncycastle

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

jBCrypt 0.3 C#Port(BCrypt.net)

在查看了原始jBCrypt v0.1 C#端口中的一个错误:BCrypt.net(相关问题).我决定将新的jBCrypt代码与旧的C#端口进行比较,以查找差异和潜在问题,如相关问题的错误.

这是我发现的:

// original java (jBCrypt v0.3):
private static int streamtoword(byte data[], int offp[]) {
        int i;
        int word = 0;
        int off = offp[0];

        for (i = 0; i < 4; i++) {
            word = (word << 8) | (data[off] & 0xff);
            off = (off + 1) % data.length;
        }

        offp[0] = off;
        return word;
}


// port to C# :
private static uint StreamToWord(byte[] data, ref int offset)
{

    uint word = …
Run Code Online (Sandbox Code Playgroud)

c# bcrypt jbcrypt bcrypt.net

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