交换钥匙
来源:互联网 发布:淘宝怎么关注品牌 编辑:程序博客网 时间:2024/04/28 04:00
public static Map<String, String> exchangeKeys(String sid, Map<String, String> keys) throws Exception {
AppSessionHelper.getAppSessionBySid(sid);
int i = 0;
//缓存生成的密钥
Date date = new Date();
date.setTime(date.getTime() + ConfigHelper.getInt(BossConstants.KEYS_TIMEOUT, 864000) * 1000);
ECDHUtil ecdhSecurity = new ECDHUtil();
Map<String, String> resultMap = new HashMap<String, String>();
Map<String, String> secKeyMap = new HashMap<String, String>();
logger.debug("Begin to generate ECDH keys ...");
for(Map.Entry<String, String> entry : keys.entrySet()) {
i++;
byte[] clientPubKey = decodeBase64(entry.getValue());
KeyValue<byte[], byte[]> keypair = ecdhSecurity.genKeyPair(clientPubKey);
//获取交换公钥
resultMap.put(entry.getKey(), encodeBase64(keypair.getKey()));
//获取交换后的密钥
//arraySec.put(encodeBase64(keypair.getValue()));
secKeyMap.put(entry.getKey(), encodeBase64(keypair.getValue()));
//生成密钥对不超过配置数
if(i == ConfigHelper.getInt(BossConstants.EXCHANGE_KEYS_COUNT, 10)) {
break;
}
}
JSONArray arraySec = new JSONArray();
for(Map.Entry<String, String> entry : secKeyMap.entrySet()) {
JSONObject info = new JSONObject();
info.put("id", entry.getKey());
info.put("key", entry.getValue());
arraySec.put(info);
}
logger.info("Generate ECDH keys [" + arraySec.toString() + "]");
//生成的密钥以SID为KEY存储于缓存中
cacheClient.set(CACHE_KEY_PREFIX + sid, arraySec.toString(), date);
return resultMap;
}
AppSessionHelper.getAppSessionBySid(sid);
int i = 0;
//缓存生成的密钥
Date date = new Date();
date.setTime(date.getTime() + ConfigHelper.getInt(BossConstants.KEYS_TIMEOUT, 864000) * 1000);
ECDHUtil ecdhSecurity = new ECDHUtil();
Map<String, String> resultMap = new HashMap<String, String>();
Map<String, String> secKeyMap = new HashMap<String, String>();
logger.debug("Begin to generate ECDH keys ...");
for(Map.Entry<String, String> entry : keys.entrySet()) {
i++;
byte[] clientPubKey = decodeBase64(entry.getValue());
KeyValue<byte[], byte[]> keypair = ecdhSecurity.genKeyPair(clientPubKey);
//获取交换公钥
resultMap.put(entry.getKey(), encodeBase64(keypair.getKey()));
//获取交换后的密钥
//arraySec.put(encodeBase64(keypair.getValue()));
secKeyMap.put(entry.getKey(), encodeBase64(keypair.getValue()));
//生成密钥对不超过配置数
if(i == ConfigHelper.getInt(BossConstants.EXCHANGE_KEYS_COUNT, 10)) {
break;
}
}
JSONArray arraySec = new JSONArray();
for(Map.Entry<String, String> entry : secKeyMap.entrySet()) {
JSONObject info = new JSONObject();
info.put("id", entry.getKey());
info.put("key", entry.getValue());
arraySec.put(info);
}
logger.info("Generate ECDH keys [" + arraySec.toString() + "]");
//生成的密钥以SID为KEY存储于缓存中
cacheClient.set(CACHE_KEY_PREFIX + sid, arraySec.toString(), date);
return resultMap;
}
0 0
- 交换钥匙
- 钥匙
- 电子钥匙
- 钥匙环
- 博客钥匙
- 钥匙串
- 备用钥匙
- 备用钥匙
- 钥匙串
- 交换
- 交换
- 交换
- 交换
- 交换
- 交换
- 交换
- 交换
- 2005-04-29 钥匙
- FrameLayout
- centos6.6+xen 4.6 网桥配置
- 函数模板实现冒泡排序
- 文件系统(三) --block_dev.c file_dev.c char_dev.c源码分析
- Linux中线程与信号
- 交换钥匙
- HDU 5246 【百度之星初赛 水】
- Hibernate多对多中间表有多个字段字段的注解配置方式(二)
- 算法-冒泡排序法
- glMatrixMode()函数的理解以及OPENGL相关视图以及矩阵的理解,特别适合新入门者。搞清基本的概念
- Eclipse搜索快捷键
- [iOS学习]NSPredicate
- 第十六周项目一:平方根中的异常
- rpm 使用