在mysql中存储和检索DSA公钥和私钥

时间:2017-03-24 04:54:17

标签: java mysql

我必须在我的项目中使用DSA(数字签名算法),使用Java实现。我有一个问题,我无法存储DSA的公钥和私钥(类型为PublicKey& PrivateKey)。当我将其存储为blob时,无法检索到其形式(即。,PublicKey)。任何人都可以帮助我吗?

KeyPairGenerator pairgen = KeyPairGenerator.getInstance("DSA");
SecureRandom random = new SecureRandom();
pairgen.initialize(KEYSIZE, random);
KeyPair keyPair = pairgen.generateKeyPair();
PublicKey pu=keyPair.getPublic();

我必须存储它并且必须检索

1 个答案:

答案 0 :(得分:0)

使用byte[]将其存储为pu.getEncoded()

要恢复到PublicKey对象,请加载字节数组并进行以下调用

KeyFactory kf = KeyFactory.getInstance("DSA");
PublicKey pu = kf.generatePublic(new X509EncodedKeySpec(keyBytes));

您也可以选择使用base64进行编码。