php 对数字机密后仍为数字

php怎么对数字加密,加密后仍为数字,类似知乎或segmentfault的url中的数字

阅读 9.2k
5 个回答

这个urlencode严格意义上不算加密,只是编码,如空格ascii为32,对应16进制为20,所以是%20(函数会特殊转化转成+),数字字母不进行处理。
我觉得你要实现可以使用正则,循环处理字符串,除了数字不处理,其他的都分成小段使用对称加密,解密也可以实现

简单的可以将数字加盐进行md5
md5($id . $salt)
取前面N位转为10进制(md5结果相当于36进制数),再截取前N位
再将上面的结果和原先的id按一定规律混淆

如果还嫌不够还可以把id也转为8进制等再进行混淆

谢谢邀请。你可以直接使用md5

echo md5(123456);

可以用sprintf格式化编码

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题