假设一个字符串是一个数字系统,其中每个东西,它可以是char,DEL或任何ASCII的东西,根据此ASCII table具有相应的数字。如何在Python中将属性的任意字符串转换为数字?
示例
#car = 35*128**3+99*128**2+97*128**1+114*128**0=75034866
答案 0 :(得分:7)
试试这个:
total = 0
for c in "#car":
total <<= 7
total += ord(c)
print total
结果:
75034866
取回原始字符串:
result = []
while total:
result.append(chr(total % 128))
total >>= 7
print ''.join(reversed(result))
结果:
#car
答案 1 :(得分:0)
对于任意长数,在Python 2.x中使用Decimal,在Python 3.x中使用int。
不知道'加密'。
答案 2 :(得分:0)
您正在寻找一种模糊数据的映射。
真正的加密需要使用陷阱门功能 - 这种功能在计算上很容易以单向计算,但如果没有特定信息,其反向很难计算。
大多数加密都基于素数分解。 Alice将两个大素数相乘,并将结果提供给Bob。 Bob使用这个大的素数来加密他的数据使用加密函数。找到Bob的加密函数的倒数需要知道两个原始素数(加密不是)。找到这些数字是一项计算成本非常高的任务,因此加密数据是“安全的”。
正确实现这一点非常困难。如果您想保证数据的安全,请找一个能为您完成数据的库。
编辑:我应该指出我所描述的是公钥加密。私钥加密的工作方式略有不同。重要的是,有一个数学基础可以认为如果没有密钥或某种密钥,加密数据将难以解密。