目前,许多我的密码的存储与MD5的SHA1算法的但是我刚刚被介绍到腌制的混合物,并想知道什么可能是最安全的故障.
我证明一个简单的md5()很容易被撤销,然而md5(sha1(md5($ var))); 这个组合是否提供了更多难度,或者更不一定更好.
而且,正在做
$var = $var.'t00lup';
md5($var);
Run Code Online (Sandbox Code Playgroud)
比上面更安全,假设t00lup是一个私钥?
有没有更好的方法来做这个,而不是只使用md5或只使用sha1?
谢谢
您好我在javascript中使用类来散列字符串:https: //ssl.bsk.com.pl/mobi/js/sha1.js
hex_hmac_sha1("927545161", "asdasdasdasd?") ;
Run Code Online (Sandbox Code Playgroud)
结果是:5db0194c834d419fc5d68b72c88af1ac8ee749d6
在PHP中我是哈希:
echo hash_hmac('sha1', "asdasdasdasd?", '927545161');
Run Code Online (Sandbox Code Playgroud)
但结果是:0b115775a20bed9922b6a9cc934cb5328fe71ade
错误在哪里?5db0194c834d419fc5d68b72c88af1ac8ee749d6!= 0b115775a20bed9922b6a9cc934cb5328fe71ade
我想编写一个程序来散列一些数据,最好我希望它使用 sha1 或 MD5 中的任何一个。我不知道它背后的主要逻辑。我还想知道我可以采取哪些方式在 C 中做到这一点。
如果我用SHA1加密密码然后加盐,然后用bcrypt加密它.是否比将盐加入未加密的密码然后用bcrypt加密更安全?
谢谢.
我必须将此ruby代码转换为PHP等效代码.
[OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('sha1'), secret_key, policy)].pack("m").strip
Run Code Online (Sandbox Code Playgroud)
我把它转换成下面的代码,但我不确定它是否正确.
$s = hash_hmac('sha1', $secret_key, $policy);
$s = base64_encode($sig);
$s = trim($sig);
return $s;
Run Code Online (Sandbox Code Playgroud)
我不确定是否需要将hash_hmac的最后一个参数设置为true:
$sig = hash_hmac('sha1', $secret_key, $policy, true);
Run Code Online (Sandbox Code Playgroud)
或者没有一个是正确的,应该以不同的方式做到这一点.
哪个是正确的等价物?
有人可以帮我理解160位(SHA-1)哈希中最重要的字节是什么吗?
我有一个C#代码调用加密库来计算数据流中的哈希码.结果我得到一个20字节的C#数组.然后我从另一个数据流计算另一个哈希码,然后我需要按升序放置哈希码.
现在,我正在努力了解如何比较它们.显然我需要从另一个中减去一个,然后检查结果是否为负,正或零.从技术上讲,我有2个20字节的数组,如果我们从内存角度看一下开头的最低有效字节(较低的内存地址)和最后的最高有效字节(较高的内存地址).另一方面,从人类阅读的角度来看它们,最重要的字节在开头,最不重要的是在结尾,如果我没有弄错,这个顺序用于比较GUID.当然,如果我们使用一种或另一种方法,它将给我们不同的顺序.哪种方式被认为是比较哈希码的正确或传统方式?在我们的情况下,这一点尤为重要,因为我们正在考虑实现一个应该与现有的哈希表兼容的分布式哈希表.
insert into Customer(AccountNo,Name,EmailId,MobileNo,[Password],Balance,
CustomerKey,OTPPin,CreatedBy,CreatedOn)
values(@AccountNumber,@Name,@EmailId,
EncryptByPassPhrase(@PassPhrase, CONVERT(nvarchar,@MobileNo)),
HASHBYTES('SHA1',@Password),@TotalBalance,@CustomerKey,@OTPPin,0,GETDATE())
Run Code Online (Sandbox Code Playgroud)
现在,我想要密码的实际值。我怎么才能得到它?
我需要获得具有特定哈希算法的所有证书的列表.
首先,我尝试检索SignatureAlgorithm,如下所示:
Get-ChildItem -Recurse | select thumbprint, subject, SignatureAlgorithm
Run Code Online (Sandbox Code Playgroud)
这给了我System.Security.Cryptography.Oid
作为SignatureAlgorithm
专栏的价值
我尝试使用FriendlyName
Get-ChildItem -Recurse | select thumbprint, subject, SignatureAlgorithm.FriendlyName
Run Code Online (Sandbox Code Playgroud)
但上面的返回空白作为值 SignatureAlgorithm
如何检索可读值SignatureAlgorithm
?还有我如何选择SHA1
使用所有证书Powershell
?
我在执行计算给定文件的MD5和SHA1校验和的方法时遇到问题.我的方法看起来像这样:
SHA1:
public string HashFile(string toHash)
{
SHA1 SHA1ENGINE = SHA1.Create();
byte[] hashBytes = SHA1ENGINE.ComputeHash(File.Open(toHash, FileMode.Open, FileAccess.Read));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
sb.Append(hashBytes[i].ToString("X2"));
}
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)
MD5:
public string HashFile(string toHash)
{
MD5 MD5ENGINE = MD5.Create();
byte[] hashBytes = MD5ENGINE.ComputeHash(File.Open(toHash, FileMode.Open, FileAccess.Read));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
sb.Append(hashBytes[i].ToString("X2"));
}
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)
在执行这些方法之一时,我得到一个IOException:进程无法访问文件'(PATHTOFILE)',因为它正由另一个进程使用.
这是一个持久性问题,我无法计算PC上任何文件的校验和.我以本地管理员身份登录,VS以管理员身份打开.这对于我尝试过的任何目录都是持久的:例如:C:\ TEMP,C:\ Users\Administrator\Desktop.我也尝试重新启动我的电脑,因为实际上可能有一个锁定文件的进程,但这没有帮助.
起初我试图使用:
byte[] hashBytes …
Run Code Online (Sandbox Code Playgroud) sha1 ×10
md5 ×3
php ×3
.net ×2
c# ×2
passwords ×2
security ×2
algorithm ×1
bcrypt ×1
c ×1
cryptography ×1
dht ×1
endianness ×1
hash ×1
hashbytes ×1
hmac ×1
javascript ×1
openssl ×1
performance ×1
powershell ×1
ruby ×1
sql-server ×1