我知道SHA-224,SHA-256,SHA-384和SHA-512都是SHA-2散列函数系列的一部分.但现在还有一种新的SHA-3哈希算法.
你能告诉我SHA-2和SHA-3之间的区别吗?何时以及为什么要使用SHA-3?SHA-3实际包含哪些安全哈希算法?
如果我有一个32个字符的字符串(MD5哈希)并使用Base64对其进行编码,那么编码字符串的最大长度是多少?
我有一个128位ID,我想要执行单向散列,但我不想为输入消息获得相同的摘要.有没有人知道sha-1或替代方案是否保证不会产生小于其输出摘要大小的消息集的冲突?这至少在理论上是可能的......
我还考虑过使用RSA,丢弃私钥给我一个单向加密,但是我需要将结果存储在一个32 char数据库字段中,而我可用的加密方案不会产生足够小的东西.
任何关于产生原始值的确定性,不可逆和无碰撞变换的方法的建议都是受欢迎的.
基于SHA-1的HMAC的安全性是否受到SHA-1冲突攻击的影响?
MySQL中的下一个功能
MD5( 'secret' )生成5ebe2294ecd0e0f08eab7690d2a6ee69
我想有一个Java函数来生成相同的输出.但
public static String md5( String source ) {
try {
MessageDigest md = MessageDigest.getInstance( "MD5" );
byte[] bytes = md.digest( source.getBytes("UTF-8") );
return getString( bytes );
} catch( Exception e ) {
e.printStackTrace();
return null;
}
}
private static String getString( byte[] bytes ) {
StringBuffer sb = new StringBuffer();
for( int i=0; i<bytes.length; i++ ) {
byte b = bytes[ i ];
sb.append( ( int )( 0x00FF & b ) );
if( …Run Code Online (Sandbox Code Playgroud) 我是一个加密新手,试图在系统之间来回传递一些值.我可以加密该值,但似乎无法弄清楚如何在另一端解密.我使用VB.NET创建了一个简单的Windows窗体应用程序.尝试输入值和密钥,加密然后解密以获取原始值.到目前为止,这是我的代码.任何帮助非常感谢.谢谢.
Imports System
Imports System.IO
Imports System.Security.Cryptography
Imports System.Text
Public Class Form1
Private Sub btnEncode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEncode.Click
Dim hmacsha1 As New HMACSHA1(Encoding.ASCII.GetBytes(txtKey.Text))
Dim hashValue As Byte() = hmacsha1.ComputeHash(Encoding.ASCII.GetBytes(txtValue.Text))
txtResult.Text = BytesToHexString(hashValue)
hmacsha1.Clear()
End Sub
Private Sub btnDecode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDecode.Click
'???
End Sub
Private Function BytesToHexString(ByVal bytes As Byte()) As String
Dim output As String = String.Empty
Dim i As Integer = 0
Do While i < …Run Code Online (Sandbox Code Playgroud) 我有几个不同的代码,但简短的故事是我使用SHA1将一些密码插入到MySQL数据库中,并且还将SHA1哈希计算到.NET中并且它们不匹配.我认为这是我的.NET编码代码的问题.
SQL代码:
INSERT INTO user_credentials (Password) VALUES (SHA1('password'));
Run Code Online (Sandbox Code Playgroud)
密码哈希为5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
.NET代码:
public static string GetPasswordHash(string password)
{
// problem here with encoding?
byte[] byteArray = Encoding.ASCII.GetBytes(password);
SHA1 sha = new SHA1CryptoServiceProvider();
byte[] hashedPasswordBytes = sha.ComputeHash(byteArray);
return Encoding.ASCII.GetString(hashedPasswordBytes);
}
Run Code Online (Sandbox Code Playgroud)
密码哈希到[?a ??????%l?3~ ???
谢谢你的帮助!
我正在尝试在Scala中实现Count-Min Sketch算法,因此我需要生成k个成对独立的散列函数.
这是我之前编程的任何一个低级别,除了Algorithms类之外我对哈希函数知之甚少,所以我的问题是:如何生成这些k成对独立哈希函数?
我应该使用像MD5或MurmurHash这样的哈希函数吗?我只生成表单的k哈希函数f(x) = ax + b (mod p),其中p是素数,a和b是随机整数?(即,每个人都在算法101中学习的通用散列家族)
我看起来更简单而不是原始速度(例如,如果它更容易实现,我将采取5倍的速度).
这是一个问题:可以打破sha1(md5('密码'))密码吗?
或者它如何在sha1中的md5或md5中的sha1更好?
谢谢!