请教一个问题,使用什么加密方式可以把一个字符串变成一串纯数字 如题,初步看来 123 会被转换成 950949948 abc -> 902901900 abc?123 -> 902901900936950949948希望高手解答。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //很简单$s = '?';echo '9' . strrev(ord($s)); 字符串部分的加密规则: $s .= '9' . str_pad(abs(ord($str[$i]) - 1), 2, '0', STR_PAD_LEFT);//从后向前加密数字部分的加密规则: $s .= '9' . str_pad(abs(ord($str[$i]) - 1), 2, '0', STR_PAD_LEFT);//从前向后加密 那你在给出一组结果明文 xyz明文 34567 xyz -> 87987887734567 -> 948947946945944 /*** 编码 ***/function encode($s) { preg_match_all('/([a-z]+)|([0-9]+)|([^0-9a-z]+)/i', $s, $t); foreach($t[0] as $v) { foreach(str_split($v, 1) as $c) $r[] = 999 - ord($c); } return implode('', $r);}/*** 解码 ***/function decode($s) { foreach(str_split($s, 3) as $v) $r .= chr(999 - $v); return $r;}请自行验证多组数据如有问题请及时提出 请问 xuzuning 这位兄弟,字母我测试好像没什么问题,中文怎么处理呢? 黯鼢 -> 1008100910081008侖侘 -> 1126100911261008 函数修改成这样就可以了function encode($s) { preg_match_all('/([a-z]+)|([0-9]+)|([^0-9a-z]+)/i', $s, $t); foreach($t[0] as $v) { foreach(str_split($v, 1) as $c) $r[] = (ord($c)>127 ? 1255 : 999) - ord($c); } return implode('', $r);}function decode($s) { preg_match_all('/1?\d{3}/', $s, $t); foreach($t[0] as $v) $r .= chr(($v{0}==1 ? 1255 : 999) - $v); return $r;}注意:编码和解码需要在同一种编码环境中进行 php 采集多级分类的思路 PHP实时更新时间 谁用PHP搞过域名抢注册程序的? win7 php配置 sql server 数据转移至 mysql php 打印等宽度 字符??? PHP 自定义函数如何书写“可选参数” 讨论一下mysql中like和match+against的效率问题 谁有《PHP从入门到精通》和《PHP4编程与实例》电子版的或下载网址的,我给100分 如何把网页定为800个象素宽 为什么获取不到留言id呢? php发送http请求
//很简单
$s = '?';
echo '9' . strrev(ord($s));
数字部分的加密规则: $s .= '9' . str_pad(abs(ord($str[$i]) - 1), 2, '0', STR_PAD_LEFT);//从前向后加密
明文 xyz
明文 34567
34567 -> 948947946945944
/*** 编码 ***/
function encode($s) {
preg_match_all('/([a-z]+)|([0-9]+)|([^0-9a-z]+)/i', $s, $t);
foreach($t[0] as $v) {
foreach(str_split($v, 1) as $c)
$r[] = 999 - ord($c);
}
return implode('', $r);
}/*** 解码 ***/
function decode($s) {
foreach(str_split($s, 3) as $v)
$r .= chr(999 - $v);
return $r;
}
请自行验证多组数据
如有问题请及时提出
侖侘 -> 1126100911261008
function encode($s) {
preg_match_all('/([a-z]+)|([0-9]+)|([^0-9a-z]+)/i', $s, $t);
foreach($t[0] as $v) {
foreach(str_split($v, 1) as $c)
$r[] = (ord($c)>127 ? 1255 : 999) - ord($c);
}
return implode('', $r);
}function decode($s) {
preg_match_all('/1?\d{3}/', $s, $t);
foreach($t[0] as $v)
$r .= chr(($v{0}==1 ? 1255 : 999) - $v);
return $r;
}
注意:编码和解码需要在同一种编码环境中进行