您是否可以使用我想要的特定长度加密字符串?例如:我想将此字符串A3D5F2ARD3
加密为类似十六进制值A3D5F2ARD3
(随机)的内容,将其固定为10长度。因此,当用户输入此值BI000001
时,系统将根据此值并对其进行解密以获取值 var divs = document.getElementsByTagName("div");
for (var i=0; i < divs.length; i++) {
display = divs[i].style.display;
if(display == 'block' ){
alert(divs[i].getAttribute('id'));
}
}
。
可以在java中执行此操作吗?
我尝试了很多方法,但所有加密长度都太长了。
答案 0 :(得分:0)
我不知道任何提供此功能的JDK内置Java加密方法。然后,我不是加密专家,但我想这样的自定义功能将不会在JDK中构建。 也许这个讨论也很有用:https://crypto.stackexchange.com/questions/6098/is-there-a-length-preserving-encryption-scheme
为什么要保留字符串的大小?也许你的问题有另一个解决方案。
答案 1 :(得分:0)
通常,您可以使用AES等block cipher来加密数据。分组密码(顾名思义)工作在固定大小的数据块中,例如AES工作在128位的块中。如果块密码遇到小于块pads it的输入,这可能是您看到密文大于明文的原因。
如果您想保留长度,请考虑this question中提到的格式保留加密。