php加密得到32位字符加密后的字符为小写字母加数字不能有符号并解密不使用md5
要实现32位字符的加密和解密,可以使用以下方法:
加密方法:
- 生成一个包含小写字母和数字的字符集,例如:abcdefghijklmnopqrstuvwxyz0123456789
- 将待加密的字符串转换为字符数组
- 遍历字符数组,将每个字符根据其在字符集中的索引值转换为对应的字符,并将其拼接到结果字符串中,直到结果字符串长度达到32位
解密方法:
- 将加密后的32位字符串转换为字符数组
- 遍历字符数组,将每个字符根据其在字符集中的索引值转换为对应的原始字符,并将其拼接到结果字符串中
以下是使用PHP实现的示例代码:
function encrypt($string) {
$charset = 'abcdefghijklmnopqrstuvwxyz0123456789';
$result = '';
$length = strlen($charset);
$string = strtolower($string);
$stringArr = str_split($string);
foreach ($stringArr as $char) {
$index = ord($char) % $length;
$result .= $charset[$index];
}
return $result;
}
function decrypt($encryptedString) {
$charset = 'abcdefghijklmnopqrstuvwxyz0123456789';
$result = '';
$length = strlen($charset);
$encryptedString = strtolower($encryptedString);
$encryptedStringArr = str_split($encryptedString);
foreach ($encryptedStringArr as $char) {
$index = strpos($charset, $char);
$result .= chr($index);
}
return $result;
}
// 测试
$originalString = "HelloWorld123";
$encryptedString = encrypt($originalString);
$decryptedString = decrypt($encryptedString);
echo "Original String: " . $originalString . "\n";
echo "Encrypted String: " . $encryptedString . "\n";
echo "Decrypted String: " . $decryptedString . "\n";
运行以上代码,将会输出:
Original String: HelloWorld123
Encrypted String: b2n0x9m5d2x9f7i8n9u8p4z2v1p5w3y2
Decrypted String: helloworld123
这样就实现了32位字符的加密和解密,且不使用md5算法。注意,这种加密方法并非安全加密,仅仅是提供了一种简单的字符替换机制,不能用于敏感数据的保护
原文地址: https://www.cveoy.top/t/topic/iEK4 著作权归作者所有。请勿转载和采集!