我的意思是:
Original String + Salt or Key --> Encrypted String
Encrypted String + Salt or Key --> Decrypted (Original String)
Run Code Online (Sandbox Code Playgroud)
也许是这样的:
"hello world!" + "ABCD1234" --> Encrypt --> "2a2ffa8f13220befbe30819047e23b2c" (may be, for e.g)
"2a2ffa8f13220befbe30819047e23b2c" --> Decrypt with "ABCD1234" --> "hello world!"
Run Code Online (Sandbox Code Playgroud)
尝试使用Crypt_Blowfish
,但它对我不起作用.
如何在Java中使用sha256散列一些字符串?有人知道这个免费图书馆吗?
我想在php中生成一个随机密码.
但是我得到所有'a'并且返回类型是数组类型,我希望它是一个字符串.有关如何更正代码的任何想法?
谢谢.
function randomPassword() {
$alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
for ($i = 0; $i < 8; $i++) {
$n = rand(0, count($alphabet)-1);
$pass[$i] = $alphabet[$n];
}
return $pass;
}
Run Code Online (Sandbox Code Playgroud) 这比普通MD5更安全吗?我刚刚开始研究密码安全性.我是PHP的新手.
$salt = 'csdnfgksdgojnmfnb';
$password = md5($salt.$_POST['password']);
$result = mysql_query("SELECT id FROM users
WHERE username = '".mysql_real_escape_string($_POST['username'])."'
AND password = '$password'");
if (mysql_num_rows($result) < 1) {
/* Access denied */
echo "The username or password you entered is incorrect.";
}
else {
$_SESSION['id'] = mysql_result($result, 0, 'id');
#header("Location: ./");
echo "Hello $_SESSION[id]!";
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试更多地了解PHP 会话修复和劫持以及如何防止这些问题.我一直在阅读Chris Shiflett网站上的以下两篇文章:
但是,我不确定我是否理解正确的事情.
为了帮助防止会话固定,调用session_regenerate_id(true)就足够了; 成功登录某人后?我想我理解正确.
他还讨论了通过$ _GET使用在URL中传递的令牌来防止会话劫持.怎么会完全这样做?我猜测当有人登录时你生成他们的令牌并将其存储在会话变量中,然后在每个页面上你将该会话变量与$ _GET变量的值进行比较?
这个令牌只需要在每个会话或每个页面加载时更改一次吗?
他们是一个防止劫持而不必在网址中传递值的好方法吗?这会更容易.
我现在是一名学生,我正在学习PHP,我正在尝试在PHP中对数据进行简单的加密/解密.我做了一些在线研究,其中一些很混乱(至少对我而言).
这是我正在尝试做的事情:
我有一个由这些字段组成的表(UserID,Fname,Lname,Email,Password)
我想要的是加密所有字段然后解密(是否可以sha256
用于加密/解密,如果不是任何加密算法)
我想要学习的另一件事是如何创造一种hash(sha256)
与良好"盐"相结合的方式.(基本上我只是希望有一个简单的加密/解密实现,hash(sha256)+salt)
先生/女士,你的答案会有很大的帮助,非常感谢.谢谢++
我想生成忘记密码的标识符.我读过我可以通过使用带有mt_rand()的时间戳来做到这一点,但有些人说时间戳可能不是每次都是唯一的.所以我在这里有点困惑.我可以使用时间戳吗?
问题
生成自定义长度的随机/唯一标记的最佳做法是什么?
我知道这里有很多问题,但是在阅读了不同的人的不同意见后,我变得更加困惑.
我一直想知道的一个概念是使用加密哈希函数和值.我知道这些函数可以生成一个唯一且几乎不可能反转的哈希值,但这是我一直想知道的:
如果在我的服务器上,在PHP中我生成:
md5("stackoverflow.com") = "d0cc85b26f2ceb8714b978e07def4f6e"
Run Code Online (Sandbox Code Playgroud)
通过MD5函数运行相同的字符串时,您在PHP安装上获得相同的结果.正在使用一个过程从一些起始值产生一些值.
这是不是意味着有一些方法来解构正在发生的事情并扭转哈希值?
这些函数是什么使得结果字符串无法回溯?
我读了一些关于md5的文档,它说它的128位,但为什么它是32个字符?我无法计算角色.
编辑:
SHA-1产生160位,那么有多少个字符?
如何将散列结果(字节数组)转换为字符串?
byte[] bytePassword = Encoding.UTF8.GetBytes(password);
using (MD5 md5 = MD5.Create())
{
byte[] byteHashedPassword = md5.ComputeHash(bytePassword);
}
Run Code Online (Sandbox Code Playgroud)
我需要转换byteHashedPassword
为字符串.