小编And*_*ndy的帖子

通过网络将RSA公钥从C发送到Java

我试图通过网络发送RSA公钥,从用c编写的服务器发送到用Java编写的客户端.当客户端收到模数时,它应该使用模数和服务器也在使用的公共指数F4重新创建RSA密钥.

以下是服务器生成和发送密钥的方式:

//Generate RSA key in C
RSA          *rsa;
int           bits = 1024;  
unsigned long exp  = RSA_F4;
BIGNUM       *bn;
BIGNUM       *MyModPubKey;

bn = BN_new();
BN_set_word(bn, exp);
rsa = RSA_new();
RSA_generate_key_ex(rsa, bits, bn, NULL);
MyModPubKey = rsa->n;

//Send RSA modulus in C
unsigned char public_key_Mod[128];
unsigned char *PubMod;
int PubModLen;


PubMod    = (unsigned char *)&public_key_Mod;
PubModLen = BN_bn2bin(MyModPubKey, PubMod);
assert(PubModLen == 128);
send(sd, public_key_Mod, 128, 0);
Run Code Online (Sandbox Code Playgroud)

以下是如何在Java中重新创建密钥.省略了异常处理.

//Read the modulus
byte[] public_key_mod = new byte[128];
is.read(public_key_mod, 0, 128);


//Create BigInteger …
Run Code Online (Sandbox Code Playgroud)

c java sockets networking rsa

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

将 List<Object> 转换为 List<Map<String, Object>>

我应该知道这一点,但由于某种原因我无法理解这一点。

为什么我不能将对象 List<Object>列表转换为地图列表List<Map<String, Object>>?列表中的每个对象都是 type 的对象Map<String, Object>,那么为什么不能进行转换呢?

我能做的是创建一个new ArrayList<Map<String, Object>>();并遍历列表并使用演员表添加每个项目。

List<Object> dataList;
..
//Why doesn't this work?
List<Map<String, Object>> rxData = (List<Map<String, Object>>)dataList;

//This works, but is there a better way?
rxData = new ArrayList<Map<String, Object>>();
for (Object data : dataList) {
    rxData.add((Map<String, Object>)data);
}
Run Code Online (Sandbox Code Playgroud)

java hashmap

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×2

c ×1

hashmap ×1

networking ×1

rsa ×1

sockets ×1