Ami*_*rad 1 java encryption hash
我正在寻找一种简单的方法来将long转换为String并以一种"隐藏"长值的方式返回.
我宁愿避免在项目中为此功能添加另一个.jar.
它不一定是难以破解的加密,只是为了随机地看待没有经验的眼睛.
加成:
我的目的是将一个计数器值(long类型)附加到URL作为跟踪参数,而不会让用户知道计数器的值(有点像tinyURL的哈希值),这样servlet就会知道URL的计数器值点击.
谢谢
如果
X * Y = 1 (mod 2^32)
Run Code Online (Sandbox Code Playgroud)
然后
A * (X * Y) = A (mod 2^32)
(A * X) * Y = A (mod 2^32)
Run Code Online (Sandbox Code Playgroud)
因此,您可以通过将其乘以X来"加密"一些32位数,然后通过乘以Y来"解密".您只需要找到满足条件的一些非平凡的X和Y.
例如,(X,Y)=(3766475841,1614427073)或(699185821,3766459317).我刚刚用一个简单的蛮力程序找到了这些.
获得A*X后,您可以使用Base-64或十六进制或URL中的某些类似方案对其进行编码.我建议使用Base64,因为它占用的空间更少,看起来相当"随机".