在php中将字符串加密为数字


encrypt string to numbers in php

可能重复:
将字符串转换为数字并返回字符串?

我有一个字符串,看起来像:

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;