Java中的短网址安全号码加密?

时间:2012-08-15 13:13:02

标签: java encryption primary-key

我正在考虑将简单的数据库主键加密为一个简短的url安全字符串。我查看了jasypt加密库,但每个加密号码的长度至少为20个字符。我正在寻找可以尽可能小的东西,但仍然是2路加密,可能大约5个字符长。加密不一定非常安全,我希望它不是显而易见的。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用具有足够大的url安全字符和url字母表的索引。只需“计算”索引,并使用url将其保存到数据库。

长度仅由您必须存储的网址数量定义。

例如,如果您使用的字母表使用所有字母加上区分大小写的数字,则可以存储(24 + 24 + 10)^ 5个网址(包含5个字符)。

所以第一个网址可能是:00001。这个apporach假设可以猜到网址密钥。

如果您需要确保无法轻易猜到,只需随机化下一个密钥,检查密钥是否在数据库中并使用它。除非你在数据库中有数百万个密钥,否则它们可能存在如此快速的密钥数量,它们不应该经常发生冲突。