我需要加密长字符串,例如16或32位哈希字符串,之后再解密该字符串。是否可以在节点js中执行?我检查了一下,但只找到了密码库的createCipher方法,但它创建的密码与样本字符串的长度一样多。实际上,对于我的情况而言,安全性并不重要。在到达原始位置后,我只需要压缩即可。假设我的长字符串示例是:
'{"112":{"parent":130,"timeZone":0,"tariff":{"tariffID":15,"startDate":"2018-07-01","peakR
ate":null,"peakRateStart":null,"peakRateEnd":null,"offPeakRate":null,"offPeakRateStart":nul
l,"offPeakRateEnd":null,"shoulderRate":null,"exportTariff":null,"flatRate":0.38,"demandLimi
t":1250,"unitID":112,"isDeleted":false,"tariffType":1},"name":"Foo","area
":22500,"target":{"value":"386915.000000","cost":"135800.000000"}},"129":{"parent":130,"tim
eZone":0,"tariff":{"tariffID":36,"startDate":"2018-07-01","peakRate":null,"peakRateStart":n
ull,"peakRateEnd":null,"offPeakRate":null,"offPeakRateStart":null,"offPeakRateEnd":null,"sh
oulderRate":null,"exportTariff":null,"flatRate":0.35,"demandLimit":950,"unitID":129,"isDele
ted":false,"tariffType":1},"name":"Bar","area":28000,"target":{"value":"258938.000
000","cost":"90210.000000"}},"130":{"parent":null,"timeZone":0,"tariff":{"tariffID":38,"sta
rtDate":"2018-07-01","peakRate":null,"peakRateStart":14,"peakRateEnd":14,"offPeakRate":null
,"offPeakRateStart":14,"offPeakRateEnd":14,"shoulderRate":null,"exportTariff":0,"flatRate":
0.35,"demandLimit":2200,"unitID":130,"isDeleted":false,"tariffType":1},"name":"Sample","area":50500,"target":null,"initial":"2018-06-20","subUnits":[112,129]}}'
在再次解密之后,我想将其加密(压缩)为最大32位字符串。我该怎么办?
答案 0 :(得分:0)
正如@ zero298所说,哈希是一种方法。意思
String -->(salt added)--->encryption---->hash
它不能反转。一组散列后,每个密码或机密数据都存储在数据库中。如果突然的哈希可以解密会怎样?如果数据库泄露了,那么每个密码都会被破解,每个敏感信息都可以被解密。
因此,解密哈希的唯一方法是:猜测字符串并使用相同的盐和相同的算法对其进行编码。如果两个匹配,则说明字符串正确。
现在,假设您可以对数据进行模糊编码。您可能需要使用某种压缩算法来压缩字符串。因为文本有很大的压缩空间。