我想知道如何从包含字母和数字的字符串生成数字。重要的是,相同的字符串必须始终生成相同的数字。
我试图在PHP中找到一个编码类型,它返回一个字符串的整数。
我不需要将其转换回字符串。有没有这样的编码?
答案 0 :(得分:0)
我想我得到了解决方案。
我正在寻找像crc32这样的东西。 它给了我一个字符串的整数。
谢谢你们的帮助,我为再次不清楚而道歉。
答案 1 :(得分:0)
您正在寻找hash function。我在这里发布了一个示例算法,用于从字符串中生成一个小数字:
// making hex hash from sentence
$s = hash( 'ripemd160', "I'm a dog" );
// taking last 5 hex digits
$s2 = substr( $s, -5 );
// converting hex digits to number
echo hexdec( $s2 );
示例算法的说明:
请注意,这只是您可以从字符串生成数字的多种方式的示例。
<强>测试强>
dani@egg-v2:~$ php5
<?php
$a=array( "I'm a dog", "I'm a cat", "I'm a car" );
foreach ($a as $e) {
$s = hash( 'ripemd160', $e) ;
$s2 = substr( $s, -5 );
echo "Hash of $e: " . hexdec( $s2 ) . "\n";
}
?>
Hash of I'm a dog: 147508
Hash of I'm a cat: 23112
Hash of I'm a car: 563887 <-- little change in string but big change in number
答案 2 :(得分:0)
整数只能存储有限数量的数据,而字符串可能存储的数据远不止于此。如果你将一个字符串转换为整数,不知何故,它总会与其他东西发生碰撞(用两个词来说,它不是唯一的!).... 你最好选择别的东西(可能是盐腌MD5?)!