微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php编码字符串,反之亦然

我有一些实体(对象),每个实体都有一个id(唯一)和一个名字.
当我想显示其中一个时,我有一个网址,如www.domain.com/view/key:xxx.
关键是使用base64_encode编码的实体的id,因此从url的id不是直截了当的.

我现在要做的是(由于项目规范),密钥只包含数字和字母(base64_encode提供的结果如eyJpZCI6IjM2In0 =或eyJpZCI6IjM2In0 =在url编码后).

一个简单的替代品吗?这不是一个高安全性的问题 – 有很多方法可以显示id – 我只需要一个只包含由实体ID(可能与其名称结合)产生的字母和数字的密钥,解码后给我回复身份证.

我发现的所有不同编码方法也可以包含特殊字符.
这里有什么帮助?
提前致谢

解决方法:

这个答案并不真正应用加密,但因为您的问题也被标记为编码…

PHP 5开始,您可以使用bin2hex:

$s = base64_decode('eyJpZCI6IjM2In0=');
echo bin2hex($s);

输出

7b226964223a223336227d

要解码:

$s = hex2bin($data);

要么:

$s = pack('H*', $data);

顺便说一句,如果id是敏感的,你可能会考虑将它作为完全加密的替代方法进行防篡改.

忘了提及如何使base64编码数据URL安全:

function base64_url_encode($input)
{
    return strtr(base64_encode($input), '+/=', '-_,');
}

function base64_url_decode($input)
{
    return base64_decode(strtr($input, '-_,', '+/='));
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐