php - python 中的混淆值

标签 php python encoding hash

假设我有以下字符串

a = "123456"
b = "#$%[{\"
c = "ABCDEFG"

我需要将这三个字符串转换为具有以下属性的“d”字符串

  • “d”字符串已混淆(不需要加密)
  • “d”字符串可以转换为a、b、c字符串(可逆)
  • “d”字符串的计算速度应该很快
  • “d”字符串应尽可能短

到目前为止我所做的是这样的

d = a+"|"+b+"|"+c
d = base64.encode(d)

到目前为止,这满足了前三个要求,但还没有完成第三个要求,因为 base64 往往会使字符串变得相当大。

我也一直在寻找其他解决方案

  • 使用 XOR 加密
  • 考虑使用 CRC32,因为一些问题 ( Reversing CRC32 ) 指出可能可以恢复它,但我对此不确定。

最后注意,“混淆”部分是由python完成的,“恢复”部分是由php完成的。

有什么想法吗?

最佳答案

如果您的字符串比示例稍长,那么 zlib module 可能比较合适:

>>> import zlib
>>> zlib.compress("123456789123456789")
'x\x9c3426153\xb7\xb04\x841\x00#\x01\x03\xbb'
>>> zlib.decompress(_)
'123456789123456789'

但是,由于格式的开销,短字符串往往会变得更长:

>>> zlib.compress("1234")
'x\x9c3426\x01\x00\x01\xf8\x00\xcb'

可以使用 PHP 的 gzuncompress 来解压。

关于php - python 中的混淆值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16954349/

相关文章:

java - PHP 和 Clojure (Java) 代码之间的原始 MD5 base64 编码字符串对于某些字符的不同结果

c# - 使用编码从 XML 字符串中获取字节数组

PHP:通过PHP文件下载头响应传递国际文件名给IOS客户端

php - php 数组中的重复项

php - Yii2 rest api getBodyParams() 无法从 PUT 请求中获取参数

python - 如何在 Mac 操作系统上安装 libxml2-dev libxslt-dev

php - Mysql类型隐藏类型转换

python - 如何将小部件动态添加到 TabbedPanelItem 内的 GridLayout

python - copy(foo) 什么时候调用 foo.copy?

Javascript 与 Java - 字符串编码