我正在JSF中编写一个新站点.目前我编程登录.
几年前我使用过md5,但是使用Rainbow Tables我觉得它的noch更安全了.
那么,我应该如何将密码存储在数据库中?
很多人最近开始使用SHA1而不是MD5.我知道MD5有它的安全漏洞但是其他原因是什么让SHA1最近变得更受欢迎?
我正在编写自己的CMS编码,而且我处于密码状态...
我想知道我之后是否可以md5
输入密码sha1
?
喜欢:
$password = md5(sha1(mysql_real_escape_string($_POST['passw'])));
Run Code Online (Sandbox Code Playgroud) /*HASHING*/
unsigned char *do_hashing(unsigned char *buffer){
unsigned char outbuffer[20];
unsigned char output[20];
SHA1(buffer, strlen(buffer), outbuffer);
for (int i=0; i<20; i++) {
output[i]=outbuffer[i];
}
printf("The hash: ");
for (int i = 0; i < 20; i++) {
printf("%02x ", outbuffer[i]);
}
printf("\n");
return output;
}
/*HASHING*/
Run Code Online (Sandbox Code Playgroud)
如果我删除printf-function,为什么这个函数会产生不同的输出(错误的输出).例如:
./ftest
The hash: a1 2a 9c 6e 60 85 75 6c d8 cb c9 98 c9 42 76 a7 f4 8d be 73
The hash: a1 2a 9c 6e 60 85 75 6c d8 …
Run Code Online (Sandbox Code Playgroud) 旧symfony系统中的用户表具有以下列:
email | algorithm | salt | password
--------------------+-------------+-----------------------------------+-------------
techytimo@gmail.com | sha1 | ea579e44dd150e5ba6680d6a3cee26b4 | f48598ad17acf18583d8499d7c6abc430929ae49
Run Code Online (Sandbox Code Playgroud)
我使用laravel 4创建的新系统包含以下列:
email | password
--------------------+-----------------------------------------------------------
techytimo@gmail.com | $2y$08$Zz3rVIW4qJFd5IdTfzpw3OrH0HxGO8BrBxfonIQCvU33/yWQkUAe
Run Code Online (Sandbox Code Playgroud)
如何将3000个帐户的密码从旧系统导入新系统而无需用户再次注册?
另外,使用相同格式的laravel 4加密我的密码的方法也会有所帮助.
我有ruby 1.8.7代码,用sha1创建hmac
key= '123'
digest = Digest::SHA1.new
digest << 'test string'
digest << key
result = digest.hexdigest
# "c1bdfd602e1581f1ab91928e2c3fd371a1e63a5c"
Run Code Online (Sandbox Code Playgroud)
我想用node.js复制它:
key= '123'; myhmac = crypto.createHmac('sha1', key); result = myhmac.update('test string').digest('hex'); // 'a145f4d366e9e4e96b80bc427144ba77b3c7151a'
但结果却不同.我应该在nodejs中做什么才能获得与ruby相同的结果?
这个问题与我题为“在 SoapUI Pro 中为 REST web 服务创建 WS 安全标头”的查询有关。然而,当我提出这个问题时有所不同,因为我根本无法让脚本工作,我想出了一个解决方案,但它只有大约 66% 的时间有效。
我注意到,与对相同输入进行哈希处理的 Python 脚本相比,我用来对字符串进行哈希处理的代码有时会产生不同的结果。
下面是我对输入值进行哈希处理的常规代码。
MessageDigest cript2 = MessageDigest.getInstance("SHA-1");
cript2.update(nonce.getBytes("ASCII"));
PasswordDigest = new String(cript2.digest());
Run Code Online (Sandbox Code Playgroud)
如果我使用输入随机数值 201703281329 运行它,它会产生以下 ë±ËËÐùìÓ0¼ÕM?¹,óßP‹
如果我使用下面的 Python 代码使用相同的输入值,那么它会产生 ë?ËËÐùìÓ0?ÕM??,óßP?
digest = sha.new(nonce).digest()
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用输入值 201703281350 运行 groovy 和 python 脚本,那么它们都会产生 ..
iàv詮ɹm:F Ë Â¾
有人能告诉我为什么我看到某些输入值而不是其他输入值的差异,以及我如何修改我的常规代码以使其产生与 Python 代码相同的值?
非常感激。
我正按照以下说明https://developers.google.com/android/guides/client-auth尝试为我的Android Firebase项目获取SHA-1证书。当我在cmd中输入以下命令时:
keytool -exportcert -list -v \
-alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
Run Code Online (Sandbox Code Playgroud)
我应该被要求输入密码,然后输入android
。但是我得到这个:
那么,我在这里做错了什么?
我用过
md5(sha1(rand()))
Run Code Online (Sandbox Code Playgroud)
这将给我2级加密和输出哈希与32长度像
cbc7a20f14eab9262efe0adb21074d0a
但我怎么能让哈希长度为255(例如)?