RT 看了好多的例子,基本都是自己生成的公钥和私钥.如何做到将已存在的公钥,私钥传入算法呢请达人帮忙.//p:F0963DD3
//q:F9D7FBA3
//E:100001
//N:EACD1CCCA57C3E59
//D:CB67A64EDF4B725D如何将这样的格式(String)作为参数传入呢?
//q:F9D7FBA3
//E:100001
//N:EACD1CCCA57C3E59
//D:CB67A64EDF4B725D如何将这样的格式(String)作为参数传入呢?
解决方案 »
- ThreadPoolExecutor.CallerRunsPolicy()相关问题问题
- 新手问题,swing中怎样将全选事件屏蔽
- Java 局域网socket传输XML报文加密
- {向java专家提问题} java系统框架包结构,与项目实现的系统包结构,欢迎大家建议
- java中怎么实现类似c++中的友元类?
- 问一个关于树刷新的问题,请大家帮忙!在线等候佳音!
- 如何获得二唯数组的列数
- 不懂:Java为什么要引入GP呢?GP能解决哪些OO解决不了的问题?
- 求教:逢3退1哪里出错了?
- java中“/usr/local/site/mysql/bin/mysql -u root >dbname.txt”应该怎样写?
- 关于sql标记库的 急!!
- main与面向对象完整性的讨论
String keyfile = "D:\\ttt\\server.jks"; //密钥库路径
String keyalias = "alice"; //密钥库别名
char[] keypassword = "password".toCharArray(); //密钥库密码
KeyStore keystore = KeyStore.getInstance("JKS");
FileInputStream fis = new FileInputStream(keyfile);
keystore.load(fis, keypassword);
Key pubKey = keystore.getKey(keyalias, keypassword);
取私钥:
KeyStore keystore = KeyStore.getInstance("JKS");
FileInputStream fis = new FileInputStream(keyfile);
keystore.load(fis, keypassword);
KeyStore.PrivateKeyEntry pkEntry = (KeyStore.PrivateKeyEntry) keystore.getEntry(keyalias, new KeyStore.PasswordProtection(keypassword));
PrivateKey myPrivateKey = pkEntry.getPrivateKey();
* 加密数据.加解密的区别在于填充数据的不同
* @param input String
* 输入数据.要求为16进制BCD表示的数据
* @param module String
* 模
* @param key String
* 公钥/私钥
* @return String
* 加密完毕的数据.16进制BCD表示
*/
public static String encrypt(String input, String module, String key) {
BigInteger pubExp = new BigInteger("00"+key, 16);
BigInteger mod = new BigInteger("00"+module, 16); StringBuffer sb = new StringBuffer();
sb.append("0001");
for (int i = 0; i < module.length() - input.length() - 4; i++) {
sb.append('F');
}
sb.append("00");
sb.append(input);
BigInteger edgeInput = new BigInteger(sb.toString(), 16); BigInteger b = edgeInput.modPow(pubExp, mod); return b.toString(16);
}
Q:B81AD05B
N:7E80A8BA75C230E1
E:10001
D:25D928A1F5533BE1十六进制,加密"11"结果是 "6D9D9C9AA284AD9E"和你加密的结果不一样,请问是什么问题呢?
KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA");
generator.initialize(512);
KeyPair pair = generator.generateKeyPair();
byte[] encode = pair.getPrivate().getEncoded();
PKCS8EncodedKeySpec pkcs = new PKCS8EncodedKeySpec(encode);
PrivateKey privateKey = KeyFactory.getInstance("RSA").generatePrivate(pkcs);
System.out.println(Arrays.equals(encode, privateKey.getEncoded()));
encode = pair.getPublic().getEncoded();
X509EncodedKeySpec x509 = new X509EncodedKeySpec(encode);
PublicKey publicKey = KeyFactory.getInstance("RSA").generatePublic(x509);
System.out.println(Arrays.equals(encode, publicKey.getEncoded()));