我正在考虑创建多个密码并将它们放在一个集合中。主要针对创建 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/