相关疑难解决方法(0)

PHP随机字符串生成器

我正在尝试在PHP中创建一个随机字符串,我绝对没有输出:

<?php
    function RandomString()
    {
        $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $randstring = '';
        for ($i = 0; $i < 10; $i++) {
            $randstring = $characters[rand(0, strlen($characters))];
        }
        return $randstring;
    }

    RandomString();
    echo $randstring;
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

php string random

772
推荐指数
27
解决办法
117万
查看次数

在php中生成随机密码

我想在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)

php security random passwords

176
推荐指数
14
解决办法
32万
查看次数

如何使用PHP生成加密安全随机数?

可能重复:
在PHP中生成安全随机数

我们需要生成一个加密随机字符串,用作身份验证令牌,该令牌将绑定到数据库中的会话数据.我们使用的是PHP,它似乎没有内置合适的随机数生成器.我们如何使用php生成N长度的加密安全随机字符串?

另请注意,由于我们的应用程序的性质,shell_exec不在桌面上.

php random cryptography

6
推荐指数
1
解决办法
6723
查看次数

检查用户名/密码是否与用户名/加密密码匹配.惠而浦加密和盐

我刚开始学习php,并决定让自己接受编码寄存器和登录脚本的挑战.

我不确定如何继续.现在,在你搜索我的代码之前......请不要成为关于sql注入和bobby表的漫步者.我明白了,但目前还没有看到它.

无论如何,我用漩涡和盐加密了密码.目前salt是静态的,不确定如何使用Time()函数实现一个,而不是通过将其定位在数据库中来破坏目的.我试图解决的问题是如何检查用户是否输入了与用户名和HASHED密码匹配的用户名和密码.

这是我目前的代码,我假设最重要的部分将在login.php文件中.

<?php
//connect.php
    $connection = mysql_connect("localhost","root","") or die("Couldn't connect to database");
    mysql_select_db("test", $connection);
?>
Run Code Online (Sandbox Code Playgroud)
<?php
//index.php
include 'connect.php';
define('salt','7hPqMO(m=F+!!L6(#Yhp-CdF, &Q}+cIrA;c@wcP(E--V<qRmq!v*aSnM;H=4cD0');


if(isset($_POST['username']) && isset($_POST['fullname']) && isset($_POST['email']) &&      isset($_POST['password'])) {
    $username = mysql_real_escape_string($_POST['username']);
    $fullname = mysql_real_escape_string($_POST['fullname']);
    $email = mysql_real_escape_string($_POST['email']);
    $password = mysql_real_escape_string($_POST['password']);
    $encryptedPassword = hash( 'whirlpool',salt.$password );

    $sql="INSERT INTO `users` (username, fullname, email, password)
    VALUES
    ('$username', '$fullname','$email','$encryptedPassword')";

    if(!mysql_query($sql,$connection)) {
        die('Error: ' . mysql_error());
    } else {
        mysql_close($connection);
        header('Location: login.php?redirectedFromRegister=1');
    }
}
?>

<html>
    <body>
        <form action="index.php" method="post"> …
Run Code Online (Sandbox Code Playgroud)

php mysql whirlpool

5
推荐指数
1
解决办法
1694
查看次数

在PHP中确定性地从密码派生32字节密钥

今天我了解到"密码"倾向于表示任意数量字符的可记忆字符串,而"密钥"表示高度随机的字符串(基于所使用的加密算法的特定长度).

所以今天我第一次听说了Key推导函数的概念.

我对如何从任意长度的密码(在PHP中)派生32字节密钥感到困惑.

以下方法有效但忽略 "[盐]应随机生成"的说明(也是如此):

$salt = 'this salt remains constant';
$iterations = 10;
$length = 32;
$aesKey = hash_pbkdf2('sha256', $somePasswordOfArbitraryLength, $salt, $iterations, $length, false);
Run Code Online (Sandbox Code Playgroud)

以下方法也有效,但也不是很正确:

$hash = password_hash($somePasswordOfArbitraryLength, PASSWORD_BCRYPT, ['cost' => $iterations]);
$aesKey = substr($hash, -$length);//this smells weird
Run Code Online (Sandbox Code Playgroud)

通过我的所有搜索,我很惊讶我没有在PHP中找到一种"官方"方式来确定性地从密码中获取32字节密钥.

我该怎么办?

PS我在PHP中使用Laravel并希望使用AES-256-CBC加密,如下所示:

$encrypter = new \Illuminate\Encryption\Encrypter($aesKey, 'AES-256-CBC');
$encryptedText = $encrypter->encrypt($text);
Run Code Online (Sandbox Code Playgroud)

Laravel的加密助手(例如Crypt::encryptString('Hello world.'))似乎不符合我的要求,因为我希望每个用户的数据根据​​每个人的密码单独加密.

无论我使用哪种密钥派生函数,每次都会产生相同的密钥,因为我将使用对称加密来解密用户使用该密钥加密的字符串.

PPS由于问题1,2,和3用于引入某些概念我.

php encryption hash aes laravel

5
推荐指数
1
解决办法
396
查看次数

独特的,不可预测的,12位数,整数id

我将如何生成这个...我想保持我的主键顺序,并为添加到数据库的每个新对象生成一个12位数的唯一引脚.

它不能仅仅是自动增量的原因是我不希望序列号很容易猜到.

它需要是整数,因为我将需要在电话簿上拨打验证码.

php mysql random

4
推荐指数
1
解决办法
6985
查看次数

散列或加密要在url中发送的变量

我有一个需要生成的链接,以便它可以放在电子邮件中.当用户点击此链接时,系统意味着将电子邮件中发送的代码与用户匹配,因此它可以为该用户提取记录.

但是,我不太确定使用哪种加密/散列方法.对于登录在本网站管理员系统中,我使用PBKDF2在数据库中的密码(盐析)和AES加密,当它被发送到会话变量,但我不知道如果PBKDF2和AES中使用的字符是url兼容的.

基本上,我需要散列/生成随机代码以存储在数据库中的最佳方法和加密方法,以便我可以将一年和代码(我之前提到的)放在一个URL中.如果有帮助,我正在使用PHP和MySQL.

你们有什么感想?

php mysql encryption url hash

4
推荐指数
2
解决办法
6474
查看次数

发送修改过的javascript

想象一下将一个参数发送给PHP的javascript命令.让我们想象他总是发送如下:

var data_id = 'login =' +user_login+ 'password =' + user_pass;
Run Code Online (Sandbox Code Playgroud)

代码如下:

$.ajax({
      type: "POST",
      url: "functions/a-php/read/read_config.php",
      data: data_id,
      cache: false,
      success: function(data_o){

      }
  });
Run Code Online (Sandbox Code Playgroud)

我想知道用户或黑客是否可以修改变量data_id,而不是发送参数login =,他发送一个带有名称的参数google=,他能做到吗?

javascript jquery

1
推荐指数
1
解决办法
57
查看次数

忘记PHP MySQL的密码URL令牌

我是PHP的新手,到目前为止创建了一个登录,注册和忘记密码,目前用户从MySQL表中发送了他们的密码.我现在使用sha1加密了密码.我目前正在编写代码:

当用户点击忘记密码链接时,他们输入用户名和电子邮件地址(已验证).

我目前发现很难在发送的电子邮件中向他们发送网址链接,以指示他们重置页面.

任何帮助将不胜感激(代码片段,教程,方法链接等).

php mysql passwords sha1 token

0
推荐指数
1
解决办法
3837
查看次数