相关疑难解决方法(0)

JAVA StringJoiner线程安全吗?

谁能告诉我是否StringJoiner是线程安全的?

我知道和之间的差异StringBuilder,StringBuffer但无法找到相关的信息StringJoiner.

java

7
推荐指数
1
解决办法
575
查看次数

使用RSA Cipher实现线程安全

正如标题所说,我想知道在给定RSA算法的情况下如何在多线程环境中最好地使用Cipher实例.

我已经阅读了关于这个主题的几个问题,以及我收集的内容:

  • 密码不是线程安全的,因为它在加密/解密时保持内部状态

  • 如果使用AES,doFinal()则将初始化向量重置为上一个已知值,因此每次都应生成新的Cipher实例

我的问题

  • cipher.init()如果选择的算法是RSA,是否可以只调用一次?这与第二个子弹相反,如下面的代码所示.我相信因为没有初始化向量.此外,密码仅用于解密数据.

  • 我应该只在cipher.doFinal()调用时同步吗?

  • 处理多个线程请求加密服务的常用方法是什么,我应该将密码池作为一些代理后面的阻塞队列吗?

代码示例:

public class RsaPrototype {

private static PrivateKey privKey;
private static Cipher cipher;
private static final String PRIVATE_KEY_PATH ="./privK.pem";

/*
 * ALGORITHM/BLOCKING_MODE/PADDING_SCHEMA
 */
private static final String CIPHER_SPECIFICATION = "RSA/None/NoPadding";
private static final String RSA_PROVIDER ="BC";

static {

    Security.addProvider(new BouncyCastleProvider());
    importPrivateKey();
    cipher = getCipher();

}

/**
 * Initializes cipher with RSA algorithm, without blocking mode and padding.
 * Implementation provider is bouncy castle.
 * 
 * @return cipher …
Run Code Online (Sandbox Code Playgroud)

java encryption multithreading rsa

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

标签 统计

java ×2

encryption ×1

multithreading ×1

rsa ×1