我将SHA256使用密码+ salt 运行,但我不知道VARCHAR在设置MySQL数据库时需要多长时间.什么是好长度?
我知道字符串"foobar" c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2使用
http://hash.online-convert.com/sha256-generator生成SHA 256哈希
但是命令行shell:
hendry@x201 ~$ echo foobar | sha256sum
aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f -
Run Code Online (Sandbox Code Playgroud)
生成不同的哈希.我错过了什么?
如何在Java中使用sha256散列一些字符串?有人知道这个免费图书馆吗?
我尝试使用SHA256散列字符串,我使用以下代码:
using System;
using System.Security.Cryptography;
using System.Text;
public class Hash
{
public static string getHashSha256(string text)
{
byte[] bytes = Encoding.Unicode.GetBytes(text);
SHA256Managed hashstring = new SHA256Managed();
byte[] hash = hashstring.ComputeHash(bytes);
string hashString = string.Empty;
foreach (byte x in hash)
{
hashString += String.Format("{0:x2}", x);
}
return hashString;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,与我的朋友php以及在线生成器(例如This generator)相比,此代码提供了显着不同的结果.
有谁知道错误是什么?不同的基地?
我正在进行php登录,我正在尝试决定是否使用SHA1或Md5,或者我在另一篇stackoverflow文章中读到的SHA256.他们中的任何一个比其他人更安全吗?对于SHA1/256,我还使用盐吗?
另外,这是一种将密码存储为mysql中的哈希的安全方法吗?
function createSalt()
{
$string = md5(uniqid(rand(), true));
return substr($string, 0, 3);
}
$salt = createSalt();
$hash = sha1($salt . $hash);
Run Code Online (Sandbox Code Playgroud) 通过环顾四周和一般的互联网,我找到了Bouncy Castle.我想使用Bouncy Castle(或其他一些免费提供的实用程序)在Java中生成一个SHA-256 Hash of String.看看他们的文档,我似乎找不到任何我想做的好例子.这里有人可以帮帮我吗?
我在C:\ cryptopp中下载并提取了Crypto ++.我使用Visual Studio Express 2012来构建内部的所有项目(按照自述文件中的说明),并且所有内容都已成功构建.然后我在其他文件夹中创建了一个测试项目,并添加了cryptolib作为依赖项.之后,我添加了包含路径,因此我可以轻松地包含所有标题.当我尝试编译时,我收到有关未解析符号的错误.
为了解决这个问题,我添加C:\cryptopp\Win32\Output\Debug\cryptlib.lib了链接其他依赖项.现在我收到这个错误:
Error 1 error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in program.obj C:\Data\Work\C++ VS\CryptoTest\CryptoTest\cryptlib.lib(cryptlib.obj) CryptoTest
Error 2 error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in program.obj C:\Data\Work\C++ VS\CryptoTest\CryptoTest\cryptlib.lib(iterhash.obj) CryptoTest
Error 3 error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in program.obj C:\Data\Work\C++ VS\CryptoTest\CryptoTest\cryptlib.lib(sha.obj) CryptoTest
Error 4 error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' …Run Code Online (Sandbox Code Playgroud) 我正在为一个论坛写一个登录,并且需要在将它发送到服务器之前在javascript中对密码客户端进行散列.我无法确定哪些SHA-256实现我可以信任.我期待每个人都使用某种权威脚本,但我发现大量不同的项目都有自己的实现.
我意识到使用其他人的加密始终是信仰的飞跃,除非你有资格自己审查它,并且没有"值得信赖"的普遍定义,但这似乎是一种常见且重要的东西,应该有某种形式关于使用什么的共识.我只是天真吗?
编辑,因为它在评论中出现了很多:是的,我们在服务器端再次执行更严格的哈希.客户端散列不是我们在数据库中保存的最终结果.客户端散列是因为人类客户端请求它.他们没有给出具体原因,可能他们只是喜欢矫枉过正.
我想在我的项目中使用sha256,但是我有一些麻烦将objC代码重写为swift代码.请帮帮我.我使用了这个答案:如何在iOS中计算SHA-2(理想情况为SHA 256或SHA 512)哈希?
这是我的代码
var hash : [CUnsignedChar]
CC_SHA256(data.bytes, data.length, hash)
var res : NSData = NSData.dataWithBytes(hash, length: CC_SHA256_DIGEST_LENGTH)
Run Code Online (Sandbox Code Playgroud)
它给了我错误的一切,因为swift无法转换Int为CC_LONG,例如.
我正在寻找使用openssl和C++创建sha256的哈希.我知道在使用OpenSSL库的C++中生成SHA哈希的帖子类似,但我希望专门创建sha256.
更新:
似乎是包含路径的问题.即使我包含它也找不到任何OpenSSL函数
#include "openssl/sha.h"
Run Code Online (Sandbox Code Playgroud)
我在构建中包含了路径
-I/opt/ssl/include/ -L/opt/ssl/lib/ -lcrypto
Run Code Online (Sandbox Code Playgroud) sha256 ×10
hash ×3
c++ ×2
java ×2
bouncycastle ×1
c# ×1
compilation ×1
crypto++ ×1
cryptographic-hash-function ×1
cryptography ×1
javascript ×1
jce ×1
linux ×1
login ×1
md5 ×1
mysql ×1
openssl ×1
php ×1
sha1 ×1
sha2 ×1
shell ×1
string ×1
swift ×1
unix ×1