相关疑难解决方法(0)

加密(模式和填充)

我的任务是编写一个涉及加密的小型Java控制台应用程序.我不熟悉加密,所以我必须先做一些阅读.到目前为止,给出的高级要求是AES-256应该用于生成一次性密钥来加密文件.

之后,应使用收件人的公钥(RSA-2048)来加密该AES-256一次性密钥.然后,加密文件和加密的一次性AES-256密钥将被压缩并发送给收件人.

根据我对读取加密和解密的理解,除了算法(RSA,AES等)之外,还有称为模式和填充的东西.例如,以下代码将RSA指定为算法,ECB模式和PKCS1Padding.

Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
Run Code Online (Sandbox Code Playgroud)

在加密和解密中必须使用相同的算法,模式和填充.因此,我可以向用户询问他们想要的模式和填充是否合理?

我注意到Cipher cipher = Cipher.getInstance("RSA")似乎使用了ECB的默认模式和PKCS1Padding的填充,因此这行代码与上面相同.那么可以假设ECB模式和PKCS1Padding模式将默认用于RSA-2048吗?

java encryption cryptography public-key-encryption

5
推荐指数
1
解决办法
4494
查看次数