使用NFT公钥的前22个字符作为DB的主键安全吗



我想知道只使用NFT公钥的前22个字符而不是44个字符作为MySQL DB的主键是否安全。我有一个数据库,里面有大量的数据,由于这种方法可以节省很多空间。例如,具有以下公钥:

AQoKYV7tYpTrFZN6P5oUufbQKAUr9mNYGe1TTJC9wajM

使用前22个字符会更安全吗:

AQoKYV7tYpTrFZN6P5oUuf

使用前11个字符加上后11个字符会更安全吗?还是没有任何区别?

AQoKYV7tYpTe1TTJC9wajM

公钥是32字节,所以那些"44个字符";实际上是这32个字节的58进制表示。

如果您只存储22个字符,那么让我们简化一下,假设您总共存储了32个字符中的16个字节。两个公钥共享相同的16字节序列的可能性是1 / 256^16 = 1 / 2^128 = 2.9 * 10 ^ -39,这是非常不可能的,但也是可能的。

这里有另一种解决问题的方法——将完整的公钥存储为32字节而不是字符串怎么样?这样你就不会失去任何精度。

最新更新