php - 如何在 PHP 中加密/解密整数

标签 php encryption

有什么方法可以对整数(或字符串)进行双向加密/解密 请注意,我不是在寻找编码

我需要这样的东西

crypting (100) --> 24694

crypting (101) --> 9564jh4 or 45216 or gvhjdfT or whatever ...

decrypting (24694) --> 100

我不需要编码,因为它是双射的

base64_encode(100) -->MTAw

base64_encode(101) -->MTAx

我希望我能在这里找到一种加密/解密纯数字的方法(计算机喜欢数字,速度更快)

最佳答案

function decrypt($string, $key) {
$result = '';
$string = base64_decode($string);
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)-ord($keychar));
$result.=$char;
}
return $result;
}

function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}

关于php - 如何在 PHP 中加密/解密整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24350891/

相关文章:

sqlite - 加密 SQLITE 数据库并在 Windows VCL 应用程序中将其与 FireDac 一起使用

php - 如何将 php 中的第一个日期时间对象与另一个日期时间对象进行比较

php - 如何修复 PHP 模块线程安全/非线程安全不匹配?

c - 如何可靠地将字符数组转置为 uint64_t 数组并再次转回

ios - 无法以编程方式在 iOS 上安装 .der 证书

c - 如何从最终输出密文中删除空格?

javascript - 在提交 form2 之前从 form1 获取值到 form2 的任何可能方法

php - Laravel 的 redirectTo() 方法发生了什么?

php - 使用另一个表从表中删除记录?

c# - Java 等同于 C# 的 Rfc2898DerivedBytes