草庐IT

php - session 哈希大小重要吗?

在选择用于session哈希的正确算法时,大小是否重要。我最近读了这个article它建议使用漩涡池为sessionID创建哈希。Whirlpool生成一个128个字符的哈希字符串,这是否太大了?计划是将session哈希存储在数据库中。使用64个字符字段(sha256)、96个字符字段(sha384)或128个字符字段(whirlpool)之间有很大区别吗?最初为whirlpool提出的争论之一是速度与其他算法相比,但从速度结果来看sha384并不太公平。可以选择截断散列以使其小于128个字符。我确实修改了原始代码片段,以允许根据需要更改算法。更新:有一些关于字符串被散列的讨论,所以

php - 为什么 codeigniter2 不以更安全的方式(例如 session )存储 csrf_hash?

为什么生成的CSRF保护token没有像建议的那样通过SESSION保存和使用here?目前在CI2中,CSRF保护机制(Security类)是这样的:1.在_csrf_set_hash()函数中为CSRFtoken生成一个唯一值:$this->csrf_hash=md5(uniqid(rand(),TRUE));2.将该标记插入表单隐藏字段(使用form_open帮助器)3.用户提交表单,服务器通过POST获取token。CI在Input类的“_sanitize_globals()”函数中进行token校验:$this->security->csrf_verify();4.Secur

php - 加密/解密方法

我知道关于这个问题有十几个。但我想知道使用sha1、sha512等散列方法为登录系统加密密码是否更好,还是为此使用Mcrypt密码更好?我知道在使用像sha这样的哈希方法加密后解密是不可能的,如果使用mcrypt加密是可能的。但是使用mcrypt是否安全,因为您也可以解密? 最佳答案 Passwordsmustnotberecoverable.对它们进行哈希处理的目的是确保如果数据库遭到破坏,攻击者无法访问每个密码,因此无法访问每个用户的帐户(以及密码被重复使用的其他服务上的每个帐户)。

php - 这是一个适当的登录和注册加密系统

显然,散列用户名和密码并将其保存为cookie并使用经过消毒的cookie数据登录对你们(或我的站点的安全性)来说是不够的。这种方法够好吗?注册程序:$salt=date('U');$username=hash('sha256',$salt.$_POST['username']);$password=hash('sha256',$salt.$_POST['password']);$token=hash('sha256',$salt.(rand(1,10000000000000000000000000000000000000000000)));要手动登录,用户输入用户名和密码,然后通过散

php - 保护对 PHP API 的访问

我有一个iPhone应用程序在服务器上使用我的phpapi,但如果有人知道url,它目前是打开的。我想确保没有人可以使用这个API,直到我准备好将它变成一个公共(public)API(如果我这样做的话)我已阅读thisarticle但我不确定他们说的是什么意思:[CLIENT]BeforemakingtheRESTAPIcall,combineabunchofuniquedatatogether(thisistypicallyalltheparametersandvaluesyouintendonsending,itisthe“data”argumentinthecodesnippet

php - password_hash() PASSWORD_DEFAULT PHP 5.5

来自password_hash()函数:PASSWORD_DEFAULT-Usethebcryptalgorithm(defaultasofPHP5.5.0).NotethatthisconstantisdesignedtochangeovertimeasnewandstrongeralgorithmsareaddedtoPHP.Forthatreason,thelengthoftheresultfromusingthisidentifiercanchangeovertime.Therefore,itisrecommendedtostoretheresultinadatabasecol

php - 在不丢失数据库用户的情况下更改哈希

我有这个网站,有一个简单的CMS,当用户注册时,他们的密码会以MD5加密。但由于我不喜欢这种加密,而且我已经在重新构建我的CMS,所以我也更改了哈希值。现在,他们是否可以在不丢失我的数据库用户的情况下以另一种加密方法更改MD5? 最佳答案 您可以在保存密码的数据库中添加3个新列。newPassword,newSalt,isRequired在这里您可以保存由新密码创建的新盐(如果使用像phpspassword_hash这样的散列)、新的散列密码以及这是他们自散列更新后的第一次登录尝试。方法您将需要修改登录脚本以检查isRequired

php - mcrypt 已弃用? - 如何在 PHP 中正确加密和保存密码?

我被告知,phpmcrypt已被弃用,我应该使用不同的方法来散列和加盐我的密码。这是我目前所做的:publicfunctionsaveNewUser(array$data){$passwd=$this->mysqli->real_escape_string($datas['passwd']);$options=['cost'=>11,'salt'=>mcrypt_create_iv(22,MCRYPT_DEV_URANDOM)];$hashed_passwd=password_hash($passwd,PASSWORD_BCRYPT,$options);$this->optin_has

php - HipHop PHP 编译器的 C++ 输出是什么样的?

它是否干净到可以丢弃PHP并手动优化C++代码? 最佳答案 简短回答:否。因为我花了一些时间让HipHop发挥作用,所以我决定在这里分享我的结果,这样我就不会觉得完全是在浪费时间。这是我的PHP输入:loop();?>这是C++输出...#include#includenamespaceHPHP{////////////////////////////////////////////////////////////////////////////////*prefacestarts*//*prefacefinishes*//*SRC

php - 在Smarty模板引擎中执行MD5函数

在Smarty模板化主题中,我想在模板中实现MD5以获得基于字符串和盐的唯一哈希值。(不要访问调用模板的PHP,否则这将是微不足道的)。Smarty似乎没有内置MD5功能。我想我可以根据字符串的长度和其他一些独特的帐户信息并使用Smarty的Math函数创建一个散列,但我希望有更好的方法来做到这一点我俯视。有人对此有任何想法或想法吗?谢谢! 最佳答案 如果您只是使用常用的md5函数,您可以将其用作修饰符。{$string|md5}来自文档:Allphp-functionscanbeusedasmodifiersimplicitly,