tcp ssl java_SSL的TCP通信

一切尽在代码中,额。自己測试的小样例。感觉非常实用,做个记录。

server端:

package com.mpc.test.clazz;

import java.io.BufferedReader;

import java.io.FileInputStream;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.Socket;

import java.security.KeyStore;

import java.security.SecureRandom;

import javax.net.ssl.KeyManagerFactory;

import javax.net.ssl.SSLContext;

import javax.net.ssl.SSLServerSocket;

import javax.net.ssl.SSLServerSocketFactory;

import javax.net.ssl.TrustManagerFactory;

public class SSLTest {

public static void main(String[] args) throws Exception {

String key = "d:/keys/m.jks";// 定义server端要使用的证书

String trust = "d:keys/trustclient.jks";// 定义server端要信任的证书

/* 个人感觉。上面这两个属性在使用的时候全然能够定义为properties文件或者xml文件来使用 */

KeyStore keyStore = KeyStore.getInstance("JKS");// 定义一个KeyStore用来存储server的秘钥文件

keyStore.load(new FileInputStream(key), "123456".toCharArray());// 载入server端使用的证书,当然要输入要打开加密文件的password了

KeyStore trustStore = KeyStore.getInstance("JKS");// 定义一个KeyStore用来存储server信任的证书文件

trustStore.load(new FileInputStream(trust), "123456".toCharArray());// 载入server端信任的证书文件,当然也要输入password的

/** 额,事实上keyStore和truststore都是Keystore的大家都看到了,就是保存的秘钥文件不同而已了 */

KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory

.getDefaultAlgorithm());/*

* 创建一个server的秘钥管理工厂,KeyManagerFactory.

* getDefaultAlgorithm

* ()是指定的默认的算法,记得是RSA··输出一下就OK了

*/

kmf.init(keyStore, "mipengcheng".toCharArray());/*

* 初始化。在初始化的时候须要自定秘钥的password,

* 这个在创建的时候指定的

*/

TrustManagerFactory tmf = TrustManagerF

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值