草庐IT

Encryption

全部标签

php - 将 crypt() salt 存储在数据库中以进行密码比较是否安全

请原谅我,我对密码安全和加密完全陌生......我在比较使用php的crypt()函数(使用blowfishhasing方法)加密的存储密码与用户输入时遇到问题。我发现可以比较密码的一种方法是存储加密期间使用的盐,然后加密用户输入并将其与存储的密码进行比较。这是一种安全的做事方式吗?还是有更好(更安全)的方法?谢谢。 最佳答案 PHP生成散列的函数会将盐包含在生成的散列值中。所以如果你存储这个散列值,你就已经存储了盐。验证函数只需提取此盐并再次使用它进行验证即可。这种方法是安全的,盐不是secret。PHP5.5版将内置对BCryp

php - SHA1 PHP mcrypt_decrypt 结果

我有2个使用PHPmcrypt库的加密和解密函数。publicfunctionencrypt_string($input,$key){$iv_size=mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_CBC);$iv=mcrypt_create_iv($iv_size,MCRYPT_RAND);$cipher=mcrypt_encrypt(MCRYPT_RIJNDAEL_128,$key,$input,MCRYPT_MODE_CBC,$iv);returnbase64_encode($iv.$cipher);}publicfunct

php - 如何为 openssl_private_decrypt() 提供私钥

我已经用我的公钥加密了一些值。但是我不能用我的私钥解密它。我的代码有问题吗?这是我的脚本: 最佳答案 关于openssl_private_decrypt()的第一条评论你可以找到一个例子。在此示例中,您可以看到key参数是方法openssl_get_privatekey()的结果,它是openssl_pkey_get_private()的别名。.openssl_pkey_get_private()的手册说key可以是以下之一:格式为file://path/to/file.pem的字符串。命名文件必须包含PEM编码的证书/私钥(它可能

c# - PHP 可以进行表单例份验证票证解密吗?

我是一名PHP开发人员,对.NET几乎一无所知。工作中的.NET人员要求我将解密身份验证票证的.NET代码翻译成PHP,以便PHP代码可以为我的应用程序运行设置适当的session变量。这可能吗?我盯着代码看,这让我感到困惑。如果有人能告诉我这不是浪费时间,我会继续尝试,因为某些我什至不知道的原因。感谢您的帮助!附加信息:我什至可以先用PHP抢票吗? 最佳答案 首先,打开您的machine.config并添加machinekey条目。根据aspnet2.0的机器key生成器随机生成的key设置解密key和验证key。请务必使用默认值

php - IonCube 额外的安全层 ?

我现在正在开发一个php项目(InternetShop),该项目可能会处理存储本地客户信用卡信息的问题。所以我在考虑用IonCube加密php文件,特别是那些包含设置(加密/解密key,IV)的文件对称加密算法。所以我不确定它是否会增加额外的安全层,因为它看起来是IonCube加密的文件和类似的解决方案可以被解密。谢谢! 最佳答案 IonCube不是合适的解决方案。如果您对包含以下内容的文件进行编码:恢复secret值仍然是微不足道的:所以IonCube编码在这里基本上没有值(value)。

php - MCRYPT 模式正在生成斜杠

我是这个加密的新手,所以我不太确定如何格式化我的问题。无论如何,我正在使用名为kohana的框架,并且它使用三样东西进行加密:key,cipher,mode所以我的问题是,当它编码一些字符串时,有时我得到/在像这样的加密中如果我是对的,我必须使用什么模式? 最佳答案 正如FrancisAvila指出的那样,加密输出似乎是Base64-encoded,因此除了字母和数字外,还可能包含斜杠和加号(末尾可能还包含等号)。您可以安全地用其他东西替换这些符号,只要您记得在解码之前将它们改回来。PHPstrtr()function这很方便。例如

c# - C# 和 PHP 上的三重 DES 加密产生不同的结果

我正在编写一个简单的登录加密系统,但我遇到了一个小问题。C#加密函数:publicstaticstringEncryptString(stringMessage,stringPassphrase){byte[]Results;System.Text.UTF8EncodingUTF8=newSystem.Text.UTF8Encoding();//Step1.WehashthepassphraseusingMD5//WeusetheMD5hashgeneratorastheresultisa128bitbytearray//whichisavalidlengthfortheTripleD

php - 在 Laravel 中设置加密 key 导致注销

我需要将用于后续Crypt::encrypt()和Crypt::decrypt()调用的key但仅在当前请求中.Crypt::setKey('1');$pin_code=Crypt::encrypt($pin_codes[$key]);//加密后自动退出可能是什么问题? 最佳答案 我想通了Laravel只有三个地方使用了Crypt包。缓存。具体来说,如果您使用的是数据库缓存驱动程序,则缓存中的值会在保存前加密,并在加载时解密。cookies。Cookie值始终以加密方式发送给用户。当请求加载时,所有cookie值都会被解密。队列。具

php - PHP password_verify 真的安全吗?再加点盐?

我一直在阅读它的工作原理,它在减慢暴力破解尝试方面确实很酷,但它仍然让人感觉不安全。假设有人窃取了我的数据库数据,包括我所有的用户密码散列值,并且知道我使用password_hash来散列我的密码。他不能用他的字典和password_verify循环遍历我的密码来获得访问权限吗?在散列密码之前添加另一种盐是好的做法吗? 最佳答案 添加到@adeneo的回答中,bcrypt、pbkdf2、scrypt和现代密码哈希策略的要点是速度慢。是的,如果您从数据库(SQLi)中获得生成的哈希值,您可以尝试输入密码并尝试验证每个密码。但是,只是尝

php - 如何使 openssl_encrypt 将输入填充到所需的 block 大小?

如果我手动将字符串填充到32的长度,我的代码就可以工作。我的问题是:有没有办法让openSSL填充数据,还是我总是必须这样做?工作:openssl_encrypt("mybabaisovertheocean1111111",'AES-256-CBC',$MY_SECRET_KEY,OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING,$MY_IV);不工作:openssl_encrypt("mybabaisovertheocean",'AES-256-CBC',$MY_SECRET_KEY,OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING