- 浏览: 179803 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (56)
- 算法 (9)
- linux (15)
- oracle (4)
- Project Euler Problem (3)
- 编程珠玑 (2)
- 数学 (1)
- http (1)
- java (19)
- plsql (1)
- apusic (1)
- https (1)
- 备忘 (22)
- 概率 (1)
- EIP (0)
- eclipse (1)
- 安全 (1)
- 公钥体系 (6)
- PKI (2)
- 网络 (2)
- linux,克隆 (0)
- virt-manager (1)
- VMWare (1)
- 克隆 (1)
- logback (1)
- TimeBasedRollingPolicy (0)
- SizeBasedTriggeringPolicy (0)
- properties (1)
- class (1)
- classloader (1)
- netty (1)
- thread dump (1)
- jstack (1)
- jconsole (1)
- java,编码,文件名 (0)
- google (1)
- goagent (1)
- 线程池 (1)
- 博客 (1)
- hexo (1)
- github (1)
- gitcafe (1)
最新评论
-
panhl:
我也实现了一个https://github.com/panho ...
具有相同属性任务串行有序执行的线程池设计 -
fengwei5129:
感谢,最近在看netty源码一直搞不清楚是如何实现的死锁检测, ...
Future机制用于并发编程时的死锁检测 -
OpenMind:
发现IBM JDK的System.nanoTime()没有实现 ...
Java系统时钟几个值得思考的问题 -
lvhongfen:
好了,感谢LZ分享
windows下plsql 设置 里面timestamp显示的格式 -
OpenMind:
今天发现,在linux下还有个很简介的方法查看线程的转储信息, ...
不依赖jstack的java 线程dump和死锁检查工具
下面是java编程方式生成CA证书的代码,使用的是BC的provider。生成CA证书与生成普通证书的区别是:1,生成CA证书时,issuer和subject一致;2,在ContentSigner.build()的时候(签名的时候)使用的是与待签名公钥相应的私钥。
下面代码,CA生成以后把私钥和证书一起以一个key entry的方式存入一个jks文件。
static { Security.addProvider(new BouncyCastleProvider()); } public static void main(String[] args) { try { KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); kpg.initialize(2048); KeyPair keyPair = kpg.generateKeyPair(); KeyStore store = KeyStore.getInstance("JKS"); store.load(null, null); String issuer = "C=CN,ST=GuangDong,L=Shenzhen,O=Skybility,OU=Cloudbility,CN=Atlas Personal License CA,E=cwjcsu@126.com"; String subject = issuer; //issuer 与 subject相同的证书就是CA证书 Certificate cert = generateV3(issuer, subject, BigInteger.ZERO, new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24), new Date(System.currentTimeMillis() + 1000L * 60 * 60 * 24 * 365 * 32), keyPair.getPublic(),//待签名的公钥 keyPair.getPrivate(), null); store.setKeyEntry("atlas", keyPair.getPrivate(), "atlas".toCharArray(), new Certificate[] { cert }); cert.verify(keyPair.getPublic()); File file = new File("resource/atlas-ca.jks"); if (file.exists() || file.createNewFile()) store.store(new FileOutputStream(file), "atlas".toCharArray()); } catch (Exception e) { e.printStackTrace(); } } public static Certificate generateV3(String issuer, String subject, BigInteger serial, Date notBefore, Date notAfter, PublicKey publicKey, PrivateKey privKey, List<Extension> extensions) throws OperatorCreationException, CertificateException, IOException { X509v3CertificateBuilder builder = new JcaX509v3CertificateBuilder( new X500Name(issuer), serial, notBefore, notAfter, new X500Name(subject), publicKey); ContentSigner sigGen = new JcaContentSignerBuilder("SHA1withRSA") .setProvider("BC").build(privKey); //privKey:使用自己的私钥进行签名,CA证书 if (extensions != null) for (Extension ext : extensions) { builder.addExtension(new ASN1ObjectIdentifier(ext.getOid()), ext.isCritical(), ASN1Primitive.fromByteArray(ext.getValue())); } X509CertificateHolder holder = builder.build(sigGen); CertificateFactory cf = CertificateFactory.getInstance("X.509"); InputStream is1 = new ByteArrayInputStream(holder.toASN1Structure() .getEncoded()); X509Certificate theCert = (X509Certificate) cf.generateCertificate(is1); is1.close(); return theCert; } public class Extension { private String oid; private boolean critical; private byte[] value; public String getOid() { return oid; } public byte[] getValue() { return value; } public boolean isCritical() { return critical; } }
发表评论
-
具有相同属性任务串行有序执行的线程池设计
2014-09-04 15:30 1434我有一个这样的线程池的场景,相信很多人都遇到过: 1,每个用 ... -
不依赖jstack的java 线程dump和死锁检查工具
2013-10-08 14:41 2444java线程dump可以使用jdk的命令“jstack ... -
回忆去年用Java破解unity.exe的过程
2013-05-26 00:48 2663去年我一同学要我破解unity.exe,然后挂在网上卖点钱花 ... -
netty做Pipe一端快一端慢时防止内存溢出进行的操作
2013-05-23 17:12 5938前段时间用netty3.x做了 ... -
为什么InputStream.read()读取一个byte确返回一个int呢?
2013-05-09 16:26 5226问题1:为什么InputStream.read()读取一个 ... -
Java系统时钟几个值得思考的问题
2013-04-10 16:48 4611System.currentTimeMillis()是依赖 ... -
logback的SizeBasedTriggeringPolicy和TimeBasedRollingPolicy联合使用问题
2013-04-01 13:37 15232<appender name="FILE& ... -
netty应用分析
2013-03-07 15:54 0用netty 3.5.7做了一个网络程序,c与s之间有一个心 ... -
Java包装类Integer比较
2012-10-18 16:41 11291,用符号==比较两个对象,意味着比较他们是否是统一个对象。 ... -
Future机制用于并发编程时的死锁检测
2012-10-18 14:51 6008Netty源码里面有个类:De ... -
java-在非安全网络上建立可信任安全的通道(2/3)
2012-10-05 19:19 1251在不安全的网络环境下进行密钥交互(1/3,前面那一节),容易遭 ... -
java-在非安全网络上建立可信任安全的通道(1/3)
2012-10-05 18:46 1908看到标题,几乎所有人都会想到SSL,但SSL比较重 ... -
java编程方式用CA给证书进行签名/签发证书
2012-10-05 18:02 11978这些代码首先加载CA证书,然后分别用CA给Alice和Bob签 ... -
安全领域的一些概念
2012-10-05 16:41 1422对称密钥/非对称密钥/key/cipher symmetri ... -
Class.getResourceAsStream
2013-04-06 14:09 1029Class.getResourceAsStream(" ... -
findbugs
2012-03-02 16:41 0findbugsfindbugsfindbugsfindbug ... -
并发编程
2012-03-02 16:41 0C:\Users\Sunny\Desktop\docC:\Us ... -
泛型类里面获取到泛型的类型
2012-03-01 10:15 3454下面的代码可以让你在抽象的泛型类里面获取到泛型的类型 ab ... -
java 学习网站大全
2012-02-27 12:02 0http://scjp.home.sohu.com/ 模拟试题 ... -
First JNI
2012-02-13 14:34 816http://hi.baidu.com/fwmf/blog/i ...
相关推荐
Java生成CA证书涉及到了几个关键概念,包括公钥加密、私钥解密、数字签名以及证书颁发机构(CA)。...通过Java编程,我们可以创建自己的CA,从而控制和验证我们系统中的数字证书,增强网络的安全性。
然而,本案例中我们不使用keytool,而是通过编程方式生成证书。 4. **Java密钥和证书管理**:在Java中,`java.security.KeyPairGenerator`类用于生成密钥对,`java.security.cert.Certificate`接口代表证书,而`...
Java作为应用广泛的编程语言,为开发者提供了强大的工具和API,来实现证书的生成、管理、签名、验证等功能,极大地提高了网络交易和通信的安全性。通过本文的详细阐述,可以清楚地了解CA证书的重要性和在Java中实现...
在Java编程环境中,生成数字证书是一项关键的安全技术,主要用于数据加密、身份验证和签名等应用场景。数字证书通常包含了公钥和私钥对,以及证书持有者的相关信息,这些信息经过认证机构(CA)的签名,确保了证书的...
这个过程涉及到的标签"java"、"jar"、"开发语言"指的是使用Java编程语言进行开发并打包成jar文件;"https"和"网络协议"是指生成的X509证书在HTTPS通信中的应用。通过这个jar包,开发者可以在他们的项目中快速生成...
在Java编程环境中,生成证书是一项常见的任务,尤其在网络安全、HTTPS服务器配置以及开发自签名证书等方面有着广泛应用。标题“certificate-generator-master_java证书生成_”暗示我们关注的是一个用于生成证书的...
在这个Java源码包中,我们可能找到了用于生成数字签名和数字证书的相关代码,这对于理解和实践Java的安全编程至关重要。 数字签名是一种用于验证电子信息完整性的方法,它结合了非对称加密技术。在Java中,我们可以...
在Java编程环境中,数字证书和数字签名是网络安全和数据完整性的重要组成部分。这些概念与Java的加密库和证书处理机制紧密相关。在这个项目中,我们似乎有一个包含Java实现数字证书和数字签名功能的源码模块。 首先...
在这个"Java 数字签名、数字证书生成源码"压缩包中,包含了实现这些功能的源代码,对于理解Java安全编程和实际应用具有很高的价值。 1. **数字签名** 数字签名是一种用于验证电子文档完整性和发送者身份的技术。在...
在Java编程领域,安全是至关重要的,特别是在网络通信中。CSDN博客作为一个知名的开发者社区,为了保护用户信息和防止恶意攻击,采用了安全认证机制。本文将深入探讨CSDN博客安全认证头中的两个关键元素:`x-ca-...
总结来说,Java实现CSDN博客安全头"x-ca-nonce"与"x-ca-signature"的生成涉及到随机字符串的生成和哈希签名的计算,这两个过程都是网络安全中的基础操作。通过理解和实践这些代码,开发者可以更好地理解Web服务的...
在Java编程中,HTTPS(Hypertext Transfer Protocol Secure)是一种用于在互联网上安全传输数据的协议,它基于HTTP,但提供了额外的安全性层,通过SSL/TLS(Secure Sockets Layer/Transport Layer Security)来加密...
7. **编程实现**:在Java中,可以使用`Runtime.getRuntime().exec()`方法执行操作系统命令,例如安装证书的命令。同时,需要处理异常和错误输出,确保程序的健壮性。 8. **证书生命周期管理**:除了安装,证书还有...
Java 数字签名与数字证书是Java安全编程中的关键概念,它们在网络安全中起着至关重要的作用,用于确保数据的完整性和验证发送者身份。这里,我们深入探讨这两个主题及其在Java中的实现。 **数字签名** 数字签名是...
Java基于command调用openssl生成私钥证书 Java是一种广泛使用的编程语言,而openssl是一种加密工具。今天,我们将介绍如何使用Java基于command调用openssl生成私钥证书。 什么是私钥证书? 私钥证书是一种数字...
在Java编程中,安全通信是确保数据在传输过程中不被篡改或窃取的关键。数字证书作为一种重要的安全机制,用于验证通信双方的身份,保证信息的真实性。本篇文章将深入探讨Java中如何实现安全通信、生成和使用数字证书...
标题中的"Des.zip_ca java"表明这是一个与Java编程语言相关的项目,主要涉及到DES(Data Encryption Standard)加密算法和CA(Certificate Authority)证书的使用。在IT领域,DES是一种经典的对称加密算法,而CA则是...
在Java编程环境中,这些概念可以通过Java Cryptography Extension (JCE) 和 Java Secure Socket Extension (JSSE) 来实现。下面我们将深入探讨基于Java的数字签名和数字证书的生成。 数字签名是一种非对称加密技术...