如何确保加密长度与给定字符串相同

时间:2015-08-11 10:28:50

标签: java encryption

您是否可以使用我想要的特定长度加密字符串?例如:我想将此字符串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中执行此操作吗?

我尝试了很多方法,但所有加密长度都太长了。

2 个答案:

答案 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中提到的格式保留加密。