我使用以下方法加密密码,我稍后将其保存在一个字符串中,我用这样的冒号分隔:
用户名:MyEncryptedString
我的问题是,我的方法是否可能返回包含冒号的字符串?
$servername = "localhost";
$username = "root";
$password = "";
$dbname="lamp";
$conn = new mysqli($servername,$username,$password,$dbname);
if ($conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
}
$eventid=mysqli_real_escape_string($conn,$_GET['eventid']);
$days=mysqli_real_escape_string($conn,$_GET['days']);
$query=("select ID from agenda where eventid=?");
$stmt=$conn->prepare($query);
$stmt->bind_param("i",$eventid);
$stmt->execute();
$stmt->store_result();
$row=$stmt->num_rows;
$result = $stmt->get_result();
while($rows=$result->fetch_assoc())
{}
答案 0 :(得分:3)
现代密码产生的二进制输出应该与随机噪声无法区分。如果将此二进制输出解释为文本(ASCII,UTF-8等),如果密文足够长,则可能会在其中看到:
。但是你也看到它用于更短的密文,但不一定是每一个密文。关键是,输出是二进制而不是"字符串"。
可以对二进制输出进行编码以获取字符串。如果使用Base 64或Hex,则无法获得:
,因为它不在其字母表中。如果您决定使用Base 85编码,则可能会获得:
,具体取决于特定字母(例如Z85)。