草庐IT

php - 哪个更好 : sha1_file(f) or sha1(file_get_contents(f))?

我想创建一个文件的哈希值,该文件的大小最小为5Mb,并且可以扩展到1-2Gb。现在在这两种方法之间做出艰难的选择,尽管它们的工作原理完全相同。Method1:sha1_file($file)Method2:sha1(file_get_contents($file))我试过10Mb,但性能没有太大差异。但在更高的数据规模上。有什么更好的方法? 最佳答案 除非有令人信服的理由,否则请使用所提供的最高级别的表格。在这种情况下,正确的选择是sha1_file。因为sha1_file是一个只对文件起作用的高级函数。这种“限制”允许它利用文件/

php - 不能在类定义中使用 sha1 吗?

我正在使用PHP编写登录类。我在类定义中有以下行:private$salty=sha1('salty');...这给了我以下错误:“解析错误:解析错误,期待',''or';''inC:\xampp\htdocs\test\includes\jaLogin.phponline26"我已经尝试在类定义之外使用这一行并且它工作正常,只有当我在类定义中使用它时才会出现问题。如果我删除“private”这个词,我会得到一个稍微不同的错误:解析错误:解析错误,在第26行的C:\xampp\htdocs\test\includes\jaLogin.php中期待“T_FUNCTION”我觉得我错过了一

java - 你能在 PHP 中获得同样的 Java SHA-1 吗?

我发现自己需要将网站平台从Java更改为PHP,但我想保留所有用户的密码...在将散列值作为网站密码写入之前,我让这段代码对密码进行散列处理:MessageDigestmd=null;md=MessageDigest.getInstance("SHA");md.update(plaintext.getBytes("UTF-8"));byteraw[]=md.digest();hash=newBase64().encodeToString(raw).replaceAll("\n","").replaceAll("\r","");我认为Java代码对密码进行了SHA-1哈希处理,但在此之前

java - Java 中的散列与 PHP 中的盐完全相同吗? (SHA-256)

我可以简单地在PHP中加盐:$orig_pw="abcd";$salt=5f8f041b75042e56;$password=hash('sha256',$orig_pw.$salt);(我不是这样实现的,这只是一个例子,盐因人而异)有了这个,存储的密码是:bc20a09bc9b3d3e1fecf0ed5742769726c93573d4133dbd91e2d309155fa9929但是如果我尝试在Java中做同样的事情,我会得到不同的结果。我试过Stringpassword="abcd";byte[]salt=hexStringToByteArray("5f8f041b75042e5

php - 我可以在 Perl 或 PHP 中生成 SHA1 吗?

Verotel需要使用sha1_hex函数对一些数据进行哈希处理。它到底是什么?整个互联网上都没有关于它的信息。他们说“使用了SHA-1哈希(十六进制输出)”。带十六进制输出的Sha1?这是一个我似乎无法重现的例子:sha1_hex("abc777X:description=somedescriptionofproduct:priceAmount=51.20:priceCurrency=EUR:shopID=60678:version=1")=04d87d2718767ea0bef259c436ec63e3cde05be2 最佳答案

php - 主卡 migs md5 到 SHA-256 HMAC php

我有一个来自migs的网关,但它们已将md5更改为SHA-256HMAC我如何在我的代码中更改它我尝试了太多次但我收到错误400我认为我的代码存在一些问题现有代码country."'ORDERBYcountry_2_codeASC";$db1->query($q);$url="https://migs.mastercard.com.au/vpcpay";$SECURE_SECRET=MIGS_SS;$vpcURL=$url."?";$md5HashData=$SECURE_SECRET;$tax_total=$db->f("order_tax")+$db->f("order_shipp

Zend Server CE 5.5 中带有 sha256 的 PHP crypt() 会截断提供的盐

在从ZendServerCE5.1升级到ZendServerCE5.5的过程中,PHP也从5.3.5升级到5.3.8。在此转换之后,我正在处理的zend应用程序的登录功能突然中断。尝试调试它,它看起来像crypt()的实现没有反射(reflect)PHP手册,或者我误解了它。如果我敢猜测,是后者。我使用16个字符的长盐作为使用SHA256的更大盐的一部分,这在PHP手册中用作示例。$password=//stringenteredatlogin$salt='$5$rounds=250000$1234abcd5678defg$';在我对输入的密码进行哈希运算之后$hash=crypt($

javascript - node.js 和 PHP 之间的 SHA1 哈希差异

我想将这部分node.js代码转换为PHP代码。(工作中)functiongenerateHashedPass(password,salt){varbyteSalt=newBuffer(salt,'base64');varbytePass=newBuffer(password,'ucs2');varbyteResult=Buffer.concat([byteSalt,bytePass]);returnsha1.update(byteResult).digest('base64');}console.log(generateHashedPass('111111','UY68RQZT14Q

php - 在 PHP 中正确使用带有 SHA512 的 crypt()

所有在线示例都显示了crypt的用法,如下所示:$pass=crypt('something','$6$rounds=5000$anexamplestringforsalt$');但每个人都说你不应该定义圆或盐。那我应该怎么使用呢?我还有一个问题:当我运行上面的代码时,它只运行了50轮而不是5000轮,就好像系统正在停止它一样。任何帮助将不胜感激。//-解决方案-//我发现其中一些很有用:用于生成盐:这是一种随机生成盐的方法$randomString=random_bytes(32);Base64编码保证部分字符不会对crypt造成问题$salt=base64_encode($rand

java - HMC SHA1 哈希 - Java 生成与 C# 不同的哈希输出

这是this问题的跟进,但我正在尝试将C#代码移植到Java,而不是将Ruby代码移植到C#,就像相关问题中的情况一样。我正在尝试验证从Recurly.jsapi返回的加密signature是否有效。不幸的是,Recurly没有Java库来协助验证,所以我必须自己实现签名验证。根据上述相关问题(this),以下C#代码可以生成验证从Recurly返回的签名所需的哈希值:varprivateKey=Configuration.RecurlySection.Current.PrivateKey;varhashedKey=SHA1.Create().ComputeHash(Encoding.