Node.js中长字符串作为16位或32位字符串的加密和解密

时间:2018-08-06 15:38:13

标签: node.js encryption

我需要加密长字符串,例如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位字符串。我该怎么办?

1 个答案:

答案 0 :(得分:0)

正如@ zero298所说,哈希是一种方法。意思

String -->(salt added)--->encryption---->hash 

它不能反转。一组散列后,每个密码或机密数据都存储在数据库中。如果突然的哈希可以解密会怎样?如果数据库泄露了,那么每个密码都会被破解,每个敏感信息都可以被解密。

因此,解密哈希的唯一方法是:猜测字符串并使用相同的盐和相同的算法对其进行编码。如果两个匹配,则说明字符串正确。

现在,假设您可以对数据进行模糊编码。您可能需要使用某种压缩算法来压缩字符串。因为文本有很大的压缩空间。

相关问题