JKS convert to PFX

package com.ssl;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.security.Key;
import java.security.KeyStore;
import java.security.cert.Certificate;
import java.util.Enumeration;
public class ConvertPFX {      
    public static final String PKCS12 = "PKCS12";      
    public static final String JKS = "JKS";      
    public static final String PFX_KEYSTORE_FILE = "G:\\test.pfx";      
    public static final String KEYSTORE_PASSWORD = "123456";      
    public static final String JKS_KEYSTORE_FILE = "G:\\study\\ssl\\sm\\Server1Keystore.jks";      
     
    public static void coverTokeyStore() {      
        try {      
            KeyStore inputKeyStore = KeyStore.getInstance("PKCS12");      
            FileInputStream fis = new FileInputStream(PFX_KEYSTORE_FILE);      
            char[] nPassword = null;      
     
            if ((KEYSTORE_PASSWORD == null)      
                    || KEYSTORE_PASSWORD.trim().equals("")) {      
                nPassword = null;      
            } else {      
                nPassword = KEYSTORE_PASSWORD.toCharArray();      
            }      
     
            inputKeyStore.load(fis, nPassword);      
            fis.close();      
     
            KeyStore outputKeyStore = KeyStore.getInstance("JKS");      
     
            outputKeyStore.load(null, KEYSTORE_PASSWORD.toCharArray());      
     
            Enumeration enums = inputKeyStore.aliases();      
     
            while (enums.hasMoreElements()) { //   we   are   readin   just   one   certificate.        
     
                String keyAlias = (String) enums.nextElement();      
     
                System.out.println("alias=[" + keyAlias + "]");      
     
                if (inputKeyStore.isKeyEntry(keyAlias)) {      
                    Key key = inputKeyStore.getKey(keyAlias, nPassword);      
                    Certificate[] certChain = inputKeyStore      
                            .getCertificateChain(keyAlias);      
     
                    outputKeyStore.setKeyEntry(keyAlias, key, KEYSTORE_PASSWORD      
                            .toCharArray(), certChain);      
                }      
            }      
     
            FileOutputStream out = new FileOutputStream(JKS_KEYSTORE_FILE);      
     
            outputKeyStore.store(out, nPassword);      
            out.close();      
        } catch (Exception e) {      
            e.printStackTrace();      
        }      
    }      
    public static void coverToPfx() {      
        try {      
            KeyStore inputKeyStore = KeyStore.getInstance("JKS");      
            FileInputStream fis = new FileInputStream(JKS_KEYSTORE_FILE);      
            char[] nPassword = null;      
     
            if ((KEYSTORE_PASSWORD == null)      
                    || KEYSTORE_PASSWORD.trim().equals("")) {      
                nPassword = null;      
            } else {      
                nPassword = KEYSTORE_PASSWORD.toCharArray();      
            }      
     
            inputKeyStore.load(fis, nPassword);      
            fis.close();      
     
            KeyStore outputKeyStore = KeyStore.getInstance("PKCS12");      
     
            outputKeyStore.load(null, KEYSTORE_PASSWORD.toCharArray());      
     
            Enumeration enums = inputKeyStore.aliases();      
     
            while (enums.hasMoreElements()) { //   we   are   readin   just   one   certificate.        
     
                String keyAlias = (String) enums.nextElement();      
     
                System.out.println("alias=[" + keyAlias + "]");      
     
                if (inputKeyStore.isKeyEntry(keyAlias)) {      
                    Key key = inputKeyStore.getKey(keyAlias, nPassword);      
                    Certificate[] certChain = inputKeyStore      
                            .getCertificateChain(keyAlias);      
     
                    outputKeyStore.setKeyEntry(keyAlias, key, KEYSTORE_PASSWORD      
                            .toCharArray(), certChain);      
                }      
            }      
     
            FileOutputStream out = new FileOutputStream(PFX_KEYSTORE_FILE);      
     
            outputKeyStore.store(out, nPassword);      
            out.close();      
        } catch (Exception e) {      
            e.printStackTrace();      
        }      
    }      
    public static void main(String[] args) {      
        coverToPfx();      
    }      
}    

 

内容概要:本文详细介绍了OCR(光学字符识别)技术,从定义出发,阐述了它是如何让计算机“看懂”图片里的文字,通过扫描仪等设备读取文本图像并转换成计算机可编辑的文本。文中列举了OCR在办公、图书馆、交通、金融等领域的广泛应用实例,如快速处理纸质文件、车牌识别、银行支票处理等。接着回顾了OCR的发展历程,从20世纪初的萌芽到如今基于深度学习的智能化时代,期间经历了从简单字符识别到复杂场景下的高精度识别的演变。技术层面,深入解析了OCR的关键技术环节,包括图像预处理、文本检测、文本识别和后处理,每个环节都采用了先进的算法和技术手段以确保识别的准确性。最后探讨了OCR在未来可能面临的挑战,如复杂场景下的识别准确率、特殊字体和语言的支持以及数据安全问题,并展望了其与人工智能融合后的广阔前景。 适合人群:对OCR技术感兴趣的技术爱好者、开发者以及希望了解该技术在各行业应用的专业人士。 使用场景及目标:①帮助用户理解OCR技术的基本原理和发展历程;②展示OCR在多个行业中的具体应用场景,如办公自动化、金融票据处理、医疗病历管理等;③探讨OCR技术面临的挑战及未来发展方向,为相关从业者提供参考。 其他说明:本文不仅涵盖了OCR技术的基础知识,还深入探讨了其背后的技术细节和发展趋势,对于想要深入了解OCR技术及其应用的人来说是非常有价值的参考资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值