java加密的正确方法
我对加密技术一无所知,我对java中的加密技术有一些疑问 我通常在java中为RSA加密执行此操作java加密的正确方法,java,encryption,aes,rsa,Java,Encryption,Aes,Rsa,我对加密技术一无所知,我对java中的加密技术有一些疑问 我通常在java中为RSA加密执行此操作 Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPTION_MODE,publicKey); byte result = cipher.doFinal(data); 和使用AES的方法一样,我使用这段代码生成AES密钥 SecureRandom random = new SecureRandom(); byte
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPTION_MODE,publicKey);
byte result = cipher.doFinal(data);
和使用AES的方法一样,我使用这段代码生成AES密钥
SecureRandom random = new SecureRandom();
byte [] key = new byte [16];
random.nextByte(key);
SecretKeySpec secretKey = new SecretKeySpec(key,"AES");
但正如我在其他程序代码中看到的,这不是他们使用加密的方式,我总是看到他们在AES中使用IV参数,他们从不使用“AES”或“RSA”来获取密码实例。
我用来加密数据的方式安全吗?
我肯定我错过了什么
更新:
我还有一个问题,关于在AES加密中更改数据大小,就像我用AES加密数据一样,它将数据大小从1024更改为1040
byte key [] = new byte[16];
SecureRandom random = new SecureRandom();
random.nextBytes(key);
SecretKeySpec keySpec = new SecretKeySpec(key,"AES");
Cipher c = Cipher.getInstance("AES");
c.init(Cipher.ENCRYPT_MODE,keySpec);
FileInputStream in = new FileInputStream("test.txt");
byte [] buffer = new byte[1024];
byte [] encrypted;
while (in.read()>0){
encrypted = c.doFinal(buffer);
System.out.println(encrypted.length);
}
结果是:
1040
1040
.
.
1040
简单加密的数据大小始终比原始数据大16字节
我必须处理这个问题吗,还是因为我使用Cipher.getInstance(“AES”) 这不是推荐的方法,您需要更改它。您可能想更好地了解StackOverflow。这篇文章直接回答了你的问题
确保你能更深入地了解所有答案。例如更多 这不是推荐的方法,您需要更改它。您可能想更好地了解StackOverflow。这篇文章直接回答了你的问题
确保你能更深入地了解所有答案。例如更多 我的观点是,这个基本的问题,或者说教程,太宽泛了。但由于它们有时会吸引到好的答案,我会推迟投票。网上有很多优秀的资源,你可以使用它们来获得更多的最新信息。密码学是一个复杂的问题,您必须在尝试编程之前理解它,至少如果您希望保持安全的话。例如,您需要了解什么是以及为什么使用它。一段时间内更少的编码和更多的读取。一般来说:数据用AES加密,密钥用RSA加密。AES有一个加密和解密密钥,速度快,并且没有数据大小限制。RSA有两个密钥(一个用于加密,另一个用于解密),速度非常慢,并且数据大小限制小于密钥大小。我认为,这个基础或教程的问题太广泛了。但由于它们有时会吸引到好的答案,我会推迟投票。网上有很多优秀的资源,你可以使用它们来获得更多的最新信息。密码学是一个复杂的问题,您必须在尝试编程之前理解它,至少如果您希望保持安全的话。例如,您需要了解什么是以及为什么使用它。一段时间内更少的编码和更多的读取。一般来说:数据用AES加密,密钥用RSA加密。AES有一个加密和解密密钥,速度快,并且没有数据大小限制。RSA有两个密钥(一个用于加密,另一个用于解密),非常慢,并且数据大小限制小于密钥大小。我更新了我的问题,关于RSA加密的答案将非常好,因为中没有关于RSA的内容。我更新了我的问题,关于RSA加密的答案将非常好,因为中没有关于RSA的内容