2024-04-25 08:40:57 发布
网友
假设我有以下字符串的可能值:
exp="110" exp="110-120" exp="110-120-211"
实际上,这是从URL获取的GET参数。exp可能会变得非常大,所以我想缩短它(加密它)。不是因为安全原因,而是因为我不想让它变得又长又丑。在
exp
所以我想把exp加密成一个固定长度的短字符串,比如说15。有可能吗?像这样:
我用的是python
编辑
{cd3>还需要提一下功能。此外,我更喜欢标准python库中的解决方案,而不必安装新的包。在
如果安全性根本不是问题,而您只想混淆和缩小,那么可以使用base64?它是用Javascript和Python实现的,因此您可以轻松地在前端对其进行编码,在后端对其进行解码。在
但是,这不会给你一个固定的长度,除非你故意垫到某个长度大于实际长度。在
不,不可能以可逆的方式将任意大的数据集拟合成固定长度。你需要更好地定义通过的内容。在
例如,如果:
如果这些都是真的,你可以将你的列表以位的形式打包到一个固定大小的二进制流中,最大位数为最大位数,然后用base64对其进行编码。这将是固定长度和可逆的。在
你的琴弦有多长?如果它们足够长,可以使用zlib(或标准库中的另一个压缩模块)压缩它们,然后在其上运行base64。在
zlib
>>> z = base64.encodestring(zlib.compress("123")) >>> print z eJwzNDIGAAEtAJc= >>> zlib.decompress(base64.decodestring(z)) '123'
这不会缩小你的字符串,除非它们很长(在我的测试中,原始字符串中有36个字符)。你也没有固定的长度,但我不相信有任何方法可以达到这一点。在
如果安全性根本不是问题,而您只想混淆和缩小,那么可以使用base64?它是用Javascript和Python实现的,因此您可以轻松地在前端对其进行编码,在后端对其进行解码。在
但是,这不会给你一个固定的长度,除非你故意垫到某个长度大于实际长度。在
不,不可能以可逆的方式将任意大的数据集拟合成固定长度。你需要更好地定义通过的内容。在
例如,如果:
如果这些都是真的,你可以将你的列表以位的形式打包到一个固定大小的二进制流中,最大位数为最大位数,然后用base64对其进行编码。这将是固定长度和可逆的。在
你的琴弦有多长?如果它们足够长,可以使用
zlib
(或标准库中的另一个压缩模块)压缩它们,然后在其上运行base64。在这不会缩小你的字符串,除非它们很长(在我的测试中,原始字符串中有36个字符)。你也没有固定的长度,但我不相信有任何方法可以达到这一点。在
相关问题 更多 >
编程相关推荐