首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

支付宝RSA 公私钥 程序生成,openssl rsa 密钥程序生成,想要几多有多少

2013-06-25 
支付宝RSA 公私钥 程序生成,openssl rsa 密钥程序生成,想要多少有多少?1.先配置好openssl 环境变量保证cmd

支付宝RSA 公私钥 程序生成,openssl rsa 密钥程序生成,想要多少有多少

?

1.先配置好openssl 环境变量

保证cmd 输入openssl能够找到命令

?

?

2.java 代码

package com.openssl;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;class StreamDrainer implements Runnable {private InputStream ins;public StreamDrainer(InputStream ins) {this.ins = ins;}public void run() {try {BufferedReader reader = new BufferedReader(new InputStreamReader(ins));String line = null;while ((line = reader.readLine()) != null) {System.out.println(line);}} catch (Exception e) {e.printStackTrace();}}}public class TestRunCmd {/** rsa 公钥 */private static String RSA_PUBLIC_KEY_FILE = "rsa_public_key.pem";public static void main(String[] args) {String rsaPrivate = "";String rsaPublic = "";String command = "openssl genrsa -out rsa_private_key.pem 1024";cmdExec(command, false);command = "openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem";cmdExec(command, false);command = "openssl pkcs8 -topk8 -nocrypt -inform PEM -in rsa_private_key.pem -outform PEM outform";String returnStr = cmdExec(command, true);if (returnStr != null && returnStr.length() > 0) {//过滤空值、头、尾rsaPrivate = returnStr.replace(" ", "").replace("-----BEGINPRIVATEKEY-----", "").replace("-----ENDPRIVATEKEY-----", "");}rsaPublic = readFile(new File(RSA_PUBLIC_KEY_FILE));if (rsaPublic != null && rsaPublic.length() > 0) {rsaPublic = rsaPublic.replace(" ", "").replace("-----BEGINPUBLICKEY-----", "").replace("-----ENDPUBLICKEY-----", "");}System.out.println("私钥: " + rsaPrivate);System.out.println("公钥: " + rsaPublic);}public static String cmdExec(String command, boolean isReturn) {String returnStr = "";String[] cmd = new String[] { "cmd.exe", "/C", command };try {Process process = Runtime.getRuntime().exec(cmd);if (isReturn) {returnStr = result(process.getInputStream());} else {new Thread(new StreamDrainer(process.getInputStream())).start();}new Thread(new StreamDrainer(process.getErrorStream())).start();process.getOutputStream().close();int exitValue = process.waitFor(); System.out.println("返回值:" + exitValue);} catch (Exception e) {e.printStackTrace();}return returnStr;}public static String result(InputStream ins) {StringBuilder sb = new StringBuilder(1000);try {BufferedReader reader = new BufferedReader(new InputStreamReader(ins));String line = null;while ((line = reader.readLine()) != null) {System.out.println(line);sb.append(line);}} catch (Exception e) {e.printStackTrace();}return sb.toString();}public static String readFile(File file) {StringBuilder sb = new StringBuilder(1000);FileInputStream fis = null; BufferedReader reader = null;try {fis = new FileInputStream(file);reader = new BufferedReader(new InputStreamReader(fis));String line = null;while ((line = reader.readLine()) != null) {sb.append(line);}} catch (Exception e) {e.printStackTrace();}finally{try {reader.close();fis.close();} catch (IOException e) {e.printStackTrace();}}return sb.toString();}}

?

?

结果:

私钥: MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAL1Vv8RsPrZw46j3Vc02VHOrJtwpH3l9mHnsGGTz8GJrw3R6RZ/k6vtbaZYDEZnQ5EuXunTT2c3rw9/zjE+n/26mGWKfpyS/T2Zg5OyUtR5lwRohWXfKOuXY3FSM97JAV4iS0XElIIoK7S0i6ON0gxFNGXzD06FTz1Nqd8YDJgNvAgMBAAECgYAKzItFjs785O93QbQ5IjIq7sYmpInRCiLaQWcayvcZBgB98kNqXUox0ALztXUZitqanSrbYwH3Rs1DRsbn/DMLaVWb5QGl3e3mL6ZfqcdqaN7aITi+WZ8XKDj4FUDJQz7mH3AjnVkqKjyBfWhWMNqgGlvtMXHo6+j7GyXIgujfwQJBAPXFLtLuUmPbA5NohCgvnmz7NFpiqr5O0pGC5oj2IMI3T9xUVvd8RPfKKIGUHmVF9MI3+dSUNgFGZsBY4ItSXb8CQQDFNzeXvsnk2mwCusbshB4Ed1gkutYy3EUu9bGHB0krYkj9SPse7q3DGXLl9z7h+2/A+5EV72cWr1gKn/Ju1CZRAkEA5LIv+Ce8kx7iHPFMyPhGu7Kl7NWTfLNsTes5Com9wfwmXCg/JNyGcO20858ZCbQnJfNgjue7uUQBqUsK55olkQJBAJ478n/vVYAofDcoc0j7rDX7J564xfoi3+OQwHLNtrh3cIbA0rP73zFFrvmyiiK5Ie5eKgfGgRkjcOl9cf/YejECQFIOjf9hHc25nb1iBLaadTe5aAXn6lS2K8RqQvzi8Ll/MkU/D0pvLZn6aEYHEhQ7FVXei+QY0eY1rzVrK0Vwbos=

公钥: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9Vb/EbD62cOOo91XNNlRzqybcKR95fZh57Bhk8/Bia8N0ekWf5Or7W2mWAxGZ0ORLl7p009nN68Pf84xPp/9uphlin6ckv09mYOTslLUeZcEaIVl3yjrl2NxUjPeyQFeIktFxJSCKCu0tIujjdIMRTRl8w9OhU89TanfGAyYDbwIDAQAB

?

?

热点排行