java安全HTTPS工具类

 1 import java.io.FileInputStream;
 2 import java.security.KeyStore;
 3 import java.security.SecureRandom;
 4
 5 import javax.net.ssl.HttpsURLConnection;
 6 import javax.net.ssl.KeyManagerFactory;
 7 import javax.net.ssl.SSLContext;
 8 import javax.net.ssl.SSLSocketFactory;
 9 import javax.net.ssl.TrustManagerFactory;
10
11 import org.apache.commons.codec.digest.DigestUtils;
12
13
14 /**
15  * HTTPS组件
16  * @author bestmata
17  *
18  */
19 public class HTTPSCoder {
20
21     private static final String TLS="TLS";
22
23     private static final String SSL="SSL";
24
25
26     /**
27      * 获取keyStore
28      *
29      * @param keyStorePath
30      * @param pwd
31      * @return
32      * @throws Exception
33      */
34     private static KeyStore getKeyStore(String keyStorePath,String pwd) throws Exception{
35         KeyStore ks=KeyStore.getInstance(KeyStore.getDefaultType());
36         FileInputStream in=new FileInputStream(keyStorePath);
37         ks.load(in, pwd.toCharArray());
38         in.close();
39         return ks;
40     }
41
42
43     /**
44      * 获取SSLSocektFactory
45      *
46      * @param keyStorePath
47      * @param pwd
48      * @param trustStorePath
49      * @return
50      * @throws Exception
51      */
52     private static SSLSocketFactory getSSLSocketFactory(String keyStorePath,String pwd,String trustStorePath) throws Exception{
53         //实例话密匙库
54         KeyManagerFactory keyManageF=KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
55         KeyStore ks=getKeyStore(keyStorePath, pwd);
56         //初始化密匙工厂
57         keyManageF.init(ks, pwd.toCharArray());
58         //实例化信任库
59         TrustManagerFactory trustManageF=TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
60         //获得信任库
61         KeyStore trustStore=getKeyStore(trustStorePath, pwd);
62         trustManageF.init(trustStore);
63         //实例化SSL上下文
64         SSLContext ctx=SSLContext.getInstance(TLS);
65         ctx.init(keyManageF.getKeyManagers(), trustManageF.getTrustManagers(), new SecureRandom());
66         return ctx.getSocketFactory();
67     }
68
69
70     public static void configSSLSocketFactory(HttpsURLConnection conn,String keyStorePath,String pwd,String trustStorePath) throws Exception{
71         SSLSocketFactory sslSocketFactory=getSSLSocketFactory(keyStorePath, pwd, trustStorePath);
72         conn.setSSLSocketFactory(sslSocketFactory);
73
74     }
75
76
77     public static void main(String[] args) {
78         System.out.println("e10adc3949ba59abbe56e057f20f883e");
79         System.out.println(DigestUtils.md5Hex("123456"));
80     }
81
82 }
时间: 2024-11-10 11:11:03

java安全HTTPS工具类的相关文章

java Https工具类

import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import javax.net.ssl.SSLContext

个人常用工具类:JAVA树形结构工具类02

JAVA树形结构工具类02 TreeNode import java.util.ArrayList; import java.util.List; /** * Created by Ace on 2017/6/12. */ public class TreeNode { protected int id; protected int parentId; List<TreeNode> children = new ArrayList<TreeNode>(); public List&

个人常用工具类:JAVA树形结构工具类01

JAVA树形结构工具类 BaseTreeObj.java /** * 基层树形结构实体类 * 必备属性:id,parentId,childsList */ @Data public class BaseTreeObj implements Serializable { private static final long serialVersionUID = 1L; private String id; private String parentId; private String name; p

UrlUtils工具类,Java URL工具类,Java URL链接工具类

UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright 蕃薯耀 2017年7月15日 http://www.cnblogs.com/fanshuyao/ Java代码   import java.util.Ha

Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ?Copyright 蕃薯耀 2017年9月13日 http://www.cnblogs.com/fanshuyao/ 直接上代码: import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.ref

[精品] 收集的27个java开发常用工具类.基本满足开发需求

原文:[精品] 收集的27个java开发常用工具类.基本满足开发需求 源代码下载地址:http://www.zuidaima.com/share/1596028005993472.htm 最近从网上收集的java开发常用的工具类,分享给大家.基本满足开发需求.推荐给热爱最代码以及java的牛牛们.   每个类都有注释的,欢迎大家可以下载使用. 字符编码:CharTools, base64:Base64 *.java Md5加密:  MD5*.java 上传:*Uploader* 生成缩略图类:T

java MD5数据加密工具类

package com.wetuo.util; import java.security.MessageDigest; /**  * 数据加密工具类  * @author wzp  *  */ public class DataUtil { public static String md5(String str) { StringBuffer buffer = new StringBuffer(); char[] chars = { '0', '1', '2', '3', '4', '5', '

Java 敏感词过滤,Java 敏感词替换,Java 敏感词工具类

Java 敏感词过滤,Java 敏感词替换,Java 敏感词工具类   =========================== ?Copyright 蕃薯耀 2017年9月25日 http://www.cnblogs.com/fanshuyao/ 一.问题描述 很多对外网站的某些内容都需要过滤敏感词,避免政治与色@情上的问题. 二.解决方案 使用词库进行匹配过滤成 * (星号) Java 敏感词工具类及敏感词词库见附件. 1.下载后,有几个类,主要为WordFilter 这个工具类,使用方法如下

Redis Java客户端jedis工具类以及Redis实现的跨jvm的锁

Redis Java客户端jedis工具类以及Redis实现的跨jvm的锁 最近项目中使用redis,学习了一下,client端使用jedis-2.1.0 首先是一个redis实现的跨jvm的lock, 接着是一个简单封装的工具类,也对pipeline处理进行了几个常用的封装 然后是对应Spring的相关配置 Java代码   public class RedisLock { /** 加锁标志 */ public static final String LOCKED = "TRUE";