0

我的帖子

个人中心

设置

  发新话题
理论上我们可以对任何字符进行加密,只是他们有没有加密的意义,例如普通的数字和字母,不具有隐私的内容,无需加密,而某些具有隐私意义的内容,通过加密,就能起到保护作用。

最近我开发了个“企业通讯录+短信群发平台”,为了保护企业用户的姓名、***号不被泄露,即使被攻击入侵,黑客拿到的也是加密后的姓名和***号,要想解密还得花更多的心思(我可以把加密过程设计得更复杂哈)

不啰嗦了,上代码吧:
<?php
//e4;b8;ad;e6;96;87;
//4d6;d0;ce;c4;

//字符串转换成16进制
function str2hex($str){
    $hex = '';
    for($i=0,$length=mb_strlen($str); $i<$length; $i++){
        $hex .= dechex(ord($str{$i}));
    }
    return $hex;
}
//16进制转换成字符串
function hex2str($hex){
    $str = '';
    $arr = str_split($hex, 2);
    foreach($arr as $bit){
        $str .= chr(hexdec($bit));
    }
    return $str;
}
function test(){
    //utf8字符测试
    $str = '中文';
    echo mb_strlen($str);
    echo '<hr/>';
            
    $hex = str2hex($str);
    echo $hex;
    echo '<hr/>';
            
    $dec = hex2str($hex);
    echo $dec;
    echo "";
    echo "<hr>";
    //gbk测试
    $gbkstr = mb_convert_encoding($str,'GBK','UTF-8');
    echo mb_strlen($gbkstr);
    echo '';
            
    $hex = str2hex($gbkstr);
    echo $hex;
    echo '<hr/>';
        
    $dec = mb_convert_encoding(hex2str($hex), 'UTF-8', 'GBK');
    echo $dec;
    echo "<hr/>";
}

$str = '中文加密';
echo 'len:'.strlen($str);
echo '<hr/>';
echo ord($str[6]).ord($str[7]).ord($str[8]);
echo $str[6].$str[7].$str[8];

echo '<hr/>';
test();
测试结果:





本帖最后由 七彩极 于 2017-6-28 09:14 编辑
看起来很厉害的样子
本帖最近评分记录
  • 七彩极 无忧币 +3 欢迎领导来指导工作~! 2017-6-29 17:11



菜刀在手,问天下谁是英雄
不断学习不断进步~
本帖最近评分记录
  • 七彩极 无忧币 +3 欢迎领导来指导工作~! 2017-6-29 17:11



我是论坛逗比管理员
大家有事儿没事儿可以撩我~
把PHP版块交给七哥,组织会很放心的,^_^





我爱你,如果肾够好的话,我希望是一万年!


牛的一塌糊涂,,仿佛看到一堆乱码。



‹‹ 上一贴:【教程经验】PHP高手必备:面向对象编程3本书籍 ...   |   下一贴:【其他】PHP 前景如何?作为程序员应该向哪个方向努力? ... ››
  发新话题
快速回复主题
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 友情链接 |意见反馈 | 网站地图
Copyright©2005-2017 51CTO.COM
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系:bbs@51cto.com