【Java安全技术探索之路系列:Java可扩展安全架构】之四:JCA(三):JCA编程模型
2015-06-15 16:11
686 查看
作者:郭嘉
邮箱:allenwells@163.com
博客:http://blog.csdn.net/allenwells
github:https://github.com/AllenWell
【Java安全技术探索之路系列:Java可扩展安全架构】之二:JCA(一):JCA架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之三:JCA(二):JCA类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之四:JCA(三):JCA编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之五:JCE(一):JCE架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之六:JCE(二):JCE类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之七:JCE(三):JCE编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之八:JCP(一):JCP架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之九:JCP(二):JCP类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之十:JCP(三):JCP编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之十一:JSSE(一):JSSE架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之十二:JSSE(二):JSSE类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之十三:JSSE(三):JSSE编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之十四:JAAS(一):JAAS架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之十五:JAAS(二):JAAS类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之十六:JAAS(三):JAAS编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之十七:JGSS(一):JGSS架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之十八:JGSS(二):JGSS类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之十九:JGSS(三):JGSS编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之二十:SASL(一):SASL架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之二十一:SASL(二):SASL类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之二十二:SASL(三):SASL编程模型
使用SHA-1计算消息摘要
getAlgorithm()返回密钥算法;
getEncoded()返回以字节数组形式返回原始编码格式的密钥;
getFormat()返回密钥的编码格式。
DSA算法和DH算法生成公私钥对
私钥签名
公钥验证
邮箱:allenwells@163.com
博客:http://blog.csdn.net/allenwells
github:https://github.com/AllenWell
【Java安全技术探索之路系列:Java可扩展安全架构】章节目录
【Java安全技术探索之路系列:Java可扩展安全架构】之一:Java可扩展安全架构开篇【Java安全技术探索之路系列:Java可扩展安全架构】之二:JCA(一):JCA架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之三:JCA(二):JCA类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之四:JCA(三):JCA编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之五:JCE(一):JCE架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之六:JCE(二):JCE类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之七:JCE(三):JCE编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之八:JCP(一):JCP架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之九:JCP(二):JCP类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之十:JCP(三):JCP编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之十一:JSSE(一):JSSE架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之十二:JSSE(二):JSSE类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之十三:JSSE(三):JSSE编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之十四:JAAS(一):JAAS架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之十五:JAAS(二):JAAS类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之十六:JAAS(三):JAAS编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之十七:JGSS(一):JGSS架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之十八:JGSS(二):JGSS类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之十九:JGSS(三):JGSS编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之二十:SASL(一):SASL架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之二十一:SASL(二):SASL类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之二十二:SASL(三):SASL编程模型
一 消息摘要
使用MD5计算消息摘要try { MessageDigest md5 = MessageDigest.getInstance("MD5"); byte[] testdata = { 1, 2, 3, 4, 5 }; md5.update(testdata); byte[] myhash = md5.digest(); } catch (NoSuchAlgorithmException e) { }
使用SHA-1计算消息摘要
try { MessageDigest sha = MessageDigest.getInstance("SHA-1"); byte[] testdata = { 1, 2, 3, 4, 5 }; sha.update(testdata); byte[] myhash = sha.digest(); } catch (NoSuchAlgorithmException e) { }
二 密钥对的生成
密钥用接口java.security.Key表示,该接口提供了3种方法:getAlgorithm()返回密钥算法;
getEncoded()返回以字节数组形式返回原始编码格式的密钥;
getFormat()返回密钥的编码格式。
DSA算法和DH算法生成公私钥对
try { // 1024一bit Digital Signature Algorithm(DSA) key pairs KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA"); keyGen.initialize(1024); KeyPair keypair = keyGen.genKeyPair(); PrivateKey privateKey = keypair.getPrivate(); PublicKey publicKey = keypair.getPublic(); // 576-bit DiffieHellman key pair keyGen = KeyPairGenerator.getInstance("DH"); keyGen.initialize(576); keypair = keyGen.genKeyPair(); privateKey = keypair.getPrivate(); publicKey = keypair.getPublic(); } catch (java.security.NoSuchAlgorithmException e) { }
三 数字签名的生成
数字签名技术是使用公钥加密技术生成的,发送方用私钥对消息签名,而接收方用公钥对消息进行解密,从而接收方能验证消息的来源或签名者,从而确保消息的完整性和真实性。私钥签名
try { byte[] testdata = { 1, 2, 3, 4, 5 }; Signature dsig = Signature.getInstance(privateKey .getAlgorithm()); dsig.initSign(privateKey); dsig.update(testdata); byte[] signedData = dsig.sign(); } catch (SignatureException e) { } catch (InvalidKeyException e) { } catch (NoSuchAlgorithmException e) { }
公钥验证
try { Signature publicDsig = Signature.getInstance(publicKey.getAlgorithm()); publicDsig.initVerify(publicKey); publicDsig.update(signedData); boolean result = publicDsig.verify(signatureToVerify); } catch(SignatureException e) { } catch (InvalidKeyException e) { } catch (NoSuchAlgorithmException e) { }
相关文章推荐
- 关于使用QQ、新浪微博、腾讯微博等第三方登录网站的开发过程(一)
- Java Web 架构 需要解决的几个问题
- 项目代码架构
- 【Java 安全技术探索之路系列:J2SE安全架构】之四:字节码验证器
- 【Java 安全技术探索之路系列:J2SE安全架构】之三:访问控制器
- 【Java安全技术探索之路系列:Java可扩展安全架构】之三:JCA(二):JCA类和接口
- 【Java安全技术探索之路系列:Java可扩展安全架构】之二:JCA(一):JCA架构介绍
- WIN7 IIS7.5web部署.NET项目遇到的问题
- IIS日志-网站运维的好帮手
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- Drupal 网站突然出现PDOException错误
- 网站WEB文档本地读取组件
- 如何发布自己的网站
- How-to: install puppet via yum
- 网站访客手机号码、qq 号码哪家捕获率高
- Android很详细的将开源库分类列出的网站
- CDNPlus的作用和架构
- 企业应用通用架构图
- Android系统架构分析 和 Android应用程序组件介绍
- .NET逻辑分层架构总结