我正在寻找一些帮助在我的iPhone应用程序中获取MD5和SHA-1.谁能告诉我如何获得这些?
我有一个Web服务,我们的客户需要使用的参数之一是自定义密钥.这个键是sha1的哈希值
eg:
bce700635afccfd8690836f37e4b4e9cf46d9c08
Run Code Online (Sandbox Code Playgroud)
然后,当客户端调用我们的Web服务时,我必须检查几件事:
现在我的问题是:
我有一个问题:
$sql = "SELECT permission, is_active FROM clients WHERE sha1(concat(id,key)) = '" . mysql_real_escape_string($key) . "'";
Run Code Online (Sandbox Code Playgroud)
我做对了吗?还是有更好的方法?谢谢
我正在将一个站点从Drupal 7迁移到Django 1.4,包括当前用户.如何使用Drupal散列的密码?
根据此,Drupal 7的使用SHA-512(它们被存储在开头"$ S $"的字符串的形式)散列的口令.
Django 1.4现在包含许多用于存储密码的选项,默认值为SHA-256,但我找不到SHA-512的选项.虽然这个应用程序似乎允许使用SHA2算法,但我不确定它是否与Django 1.4兼容(因为1.4具有灵活的密码哈希).
最简单的方法是什么?
ETA:我已经构建了一个模拟Drupal算法并使迁移变得简单的密码哈希.由于我已经接受了答案,我不会接受,但对于任何想要将Drupal转移到Django迁移的人来说,代码存储在Django片段和GitHub的要点上.
我需要对电子邮件地址进行SHA256哈希处理,我需要将结果作为字符串.
我尝试了以下方法:
use Digest::SHA qw(sha256);
my $data = 'swaranga@gmail.com';
my $digest = sha256($data);
print $digest;
Run Code Online (Sandbox Code Playgroud)
但它打印的内容如下:
B/D6i1μû^Þ©Q;¢Þ
Run Code Online (Sandbox Code Playgroud)
我需要输出如下:
cbc41284e23c8c7ed98f589b6d6ebfd6
Run Code Online (Sandbox Code Playgroud)
上面的哈希是使用Apache DigestUtils的 SHA256生成器生成的.
我究竟做错了什么?我是perl的新手,所以如果它是愚蠢的借口.
谢谢.
我的目标是为一个字符串生成一个包含6个字符的短Hash字符串(可能包含字符[AZ] [az] [0-9]),该字符串长度为42个不区分大小写的字母数字字符.唯一性是关键要求.安全性或性能不是那么重要.
是否有一个特定的算法可以给出这个结果,或者我应该坚持截断MD5哈希或SHA-1哈希(就像在这个问题中一样)?如果是这样,碰撞的概率是多少?
我正在使用SHA-1来检测程序处理文件中的重复项.它不需要加密强大并且可以是可逆的.我找到了这个快速哈希函数列表https://code.google.com/p/xxhash/
如果我想在SHA-1附近的随机数据上获得更快的功能和冲突,我该选择什么?
也许128位哈希足以用于文件重复数据删除?(vs 160 bit sha-1)
在我的程序中,哈希是在0到512 KB的块上计算的.
我在SO上看到了 一些 问题和答案,表明MD5不像SHA这样安全.
我的问题是,这在我的情况下值得担心吗?
这是我如何使用它的一个例子:
MD5(message+time+password).在这个例子中,我真的更喜欢使用SHA而不是MD5吗?
在什么情况下,散列函数的选择在实际意义上真的很重要?
编辑:
只是为了澄清一下 - 在我的例子中,移植到SHA算法有什么好处吗?
换句话说,在这个例子中,有人在不知道共享密码的情况下发送消息和正确的哈希是否可行?
更多编辑:
为重复编辑道歉 - 我不清楚我在问什么.
我们需要使用全新的证书更新我们的Azure云服务.
我给出的那个指定sha256作为签名哈希算法.
我们之前有一个sha1.
当我尝试更新和部署Azure部署时,我得到的错误表明thumprint无效.
错误8 XML规范无效:'thumbprint'属性无效 - 根据其数据类型' http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration:ThumbprintType,值'REDACTED'无效' - 模式约束失败.
在ServiceConfiguration.Cloud.cscfg文件中,XML如下所示:
<Certificates>
<Certificate name="cert" thumbprint="REDACTED" thumbprintAlgorithm="sha1" />
</Certificates>
Run Code Online (Sandbox Code Playgroud)
与thumprint属性squiggly排列为上面的错误.
我尝试过thumbprintAlgorithm = 256,但这不起作用,大概不是一个有效的值.
它需要是sha1吗?Azure可以支持sha256吗?
编辑:我在服务定义模式中找到以下内容,表明允许sha256:
<xs:attribute name="thumbprintAlgorithm" type="ThumbprintAlgorithmTypes" use="required">
<xs:annotation>
<xs:documentation>
The hash algorithm that generates a digest of data (or thumbprint)
for digital signatures such as MD5, SHA1, SHA256. This is different than
the algorithm used in creating the signature inside the certificate.
</xs:documentation>
</xs:annotation>
</xs:attribute>
Run Code Online (Sandbox Code Playgroud)
但是,架构允许的唯一类型值是sha1,如下所示:
<xs:simpleType name="ThumbprintAlgorithmTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="sha1">
<xs:annotation>
<xs:documentation>
Algorithm currently used …Run Code Online (Sandbox Code Playgroud) 如果我创建一个文件foo,touch foo然后运行shasum foo它将打印出来
da39a3ee5e6b4b0d3255bfef95601890afd80709.
无论我多久运行一次,shasum foo或者如果我在另一台计算机上运行它,它总是打印,da39a3ee5e6b4b0d3255bfef95601890afd80709因为,是的,它是完全相同内容的SHA1表示.在这种情况下空内容:)
但是,如果我执行以下步骤:
cd /some/where
mkdir demo
git init
touch foo
git add -A
git commit -m "adding foo"
Run Code Online (Sandbox Code Playgroud)
..并记住提交的SHA键(例如959c363ed4cf147725360532454bc258c964c744).
现在,当我删除demo并重复完全相同的步骤时,提交 SHA键仍然不同.这很好,确保身份很重要.
我想知道的是,git确实做了什么确保提交哈希总是唯一的,即使它们使用完全相同的内容完成相同的操作.git只是使用类似的东西uuidgen来为提交对象生成一个唯一的id,或者根据时间戳,你的mac地址,你的wifi信号等组合做一些不同的事情.
根据我读过的书,它说 SHA(安全哈希算法)是抗碰撞的。但是如果输入空间是 1024 位数字而输出空间是 512 位消息摘要那么它不应该碰撞(2^1024)/(2^512) 次?由于范围小于被映射的域,因此应该发生冲突。请解释我哪里出错了。
sha ×10
hash ×4
md5 ×4
cryptography ×2
sha256 ×2
c# ×1
collision ×1
django ×1
drupal ×1
git ×1
ios ×1
murmurhash ×1
mysql ×1
objective-c ×1
passwords ×1
performance ×1
perl ×1
security ×1
sha512 ×1
uuid ×1