java - 如何处理多个密码

标签 java performance cryptography

我正在考虑创建多个密码并将它们放在一个集合中。主要针对创建 key 和初始化Cipher对象时的优化。它们会被大量使用。

Map<Integer, Cipher> encrytors = new HashMap<Integer, Cipher>();

Key key = new SecretKeySpec(secret, KEY_ALGORITHM);
Cipher encrypter = Cipher.getInstance(CIPHER_ALOGORITHM);
encrypter.init(Cipher.ENCRYPT_MODE, key);
encrytors.put(1, encrypter);            

Key key2 = new SecretKeySpec(secret2, KEY_ALGORITHM);
Cipher encrypter2 = Cipher.getInstance(CIPHER_ALOGORITHM);
encrypter2.init(Cipher.ENCRYPT_MODE, key2);
encrytors.put(2, encrypter);

好/坏?人们如何处理多个不同的 key 和密码?

最佳答案

不要过早优化。

虽然创建 Cipher 实例并对其进行初始化 是一项相对昂贵的操作,但请先对其进行测试。只有在性能测试之后,您才应该优化性能。

另请注意,如果您想在多个线程中使用此缓存,Cipher 不是线程安全的(HashMap 也不是)。

关于java - 如何处理多个密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18403945/

相关文章:

java - 我怎样才能有一个类作为参数,并基于此将其添加到该类的数组列表中

java - Spring Boot Soap 集成测试失败

java - excel poi : apply foreground color to blank cells

R 组合,寻找比基本 R 更快更有效的方式(包、代码、并行 cpu)

Java 模式匹配需要太多时间来验证

performance - 为什么构建/拼接 F# 报价这么慢?

encryption - 如果服务器受到攻击,如何防止中间人攻击?

security - 加密能保证完整性吗?

algorithm - 32 位操作系统如何执行 2^56 模 7?

java - 使用 javacv 进行 OCR