可能重复:
将字符串转换为数字并返回字符串?
我有一个字符串,看起来像:
AhgRtlK==
我需要能够将这个字符串加密和解密成可能看起来像这样的数字:
1275653444
这就像电话费抵免(类似的东西)
编辑:我想创建一些东西,比如包含信用卡价值的移动充值信用卡但是加密的
我认为你对这个问题的理解不足以提出正确的问题。就我理解你的意思而言,这不是经过深思熟虑的。假设某个代码意味着500美元的信用额度。嗯,它总是意味着,今天,明天,永远,即使在我度过了一些之后。
因此,您不希望代码解密为值。您需要标识具有余额的唯一帐户的代码。(有很多很棒的算法可以做到这一点,它们通常基于HMAC。)
您可以使用ascii值将字符串转换为数字:
$integer = '';
foreach (str_split($string) as $char) {
$integer .= sprintf("%03s", ord($char));
}
return $integer;
要将其转换回您可以使用此:
$string = '';
foreach (str_split($integer, 3) as $number) {
$string .= chr($number);
}
return $string;