Java 数字签名原理及产生
前言
数字签名与数字证书
关于数字签名的介绍可以参考以上这篇。
这里稍微说一下不对称加密的方式:
用公钥加密的内容只能用私钥解密,用私钥加密的内容只能用公钥解密。
这样比对称加密更安全
Java 中数字签名的方式
跟普通文本加密的原理是一样的。
Java 数字签名和数字证书的作用
毋庸置疑,这些都是为了安全性而考虑的。
比如对于applet 来说,它可以保护用户(客户端) 文件和私人数据不被恶意的程序或病毒感染和破坏,鉴别代码提供者的身份。对于开发者而言,通过使用API方法,能够将安全性功能集成到应用程序中,因为API的体系结构能够定义和集成对特定的资源的使用权限、加密、 安全性管理、策略管理,并提供了一些类来管理公钥/密钥对及信任用户群的公钥证书。同时系统管理员、开发者和用户可以使用它提供的工具管理钥匙库,在 JAR文件中生成数字签名、签名的完整性检测、创建和修改策略文件
来看一下 1个Applet 的开发和运行的过程:
在代码的分发端:
(1)开发Java源程序并对其进行编译。
(2)用JAR工具对类文件和资源文件进行封装。
(3)用keytool创建公钥和密钥,生成X。509V1签名证书,输出证书。
(4)通过jarsigner工具用生成的密钥对JAR文件进行数字签名。
在代码的接收端:
(1)用keytool输入证书视其为可信任。
(2)用policytool创建和修改安全性策略配置文件,授权请求的访问权限。
(3)从网络取得字节码,用公钥验证数字签名证书和文档代码的完整性。
(4)验证字节码的合法性,根据策略文件分配相应权限。
(5)执行代码,完成后被垃圾回收器回收内存。
在用公钥验证数字签名证书之前,接收方需要确认公钥自身的可靠性,因此通常情况是提供一个包含公钥的证书而不是公钥自身。1个证书包括:
(1)1个公钥。
(2)1个唯一的名字实体(个人或公司),它是证书的所有者,包含用户名字、公司、组织、城市、地址、国家代码、省份等信息。
(3)数字签名:1个证书被1个分发者的实体签名,保证证书确实包含另1个实体(所有者)的公钥。
(4)分发者的标识名信息。
Applet 开发的实例步骤,
在服务端:
1. 开发完代码, 使用jar 或其他方式达成 XX.jar 档;
2. 为 jar 档创建 keystore 和keys.
.keystore 使用来存放密钥和公钥的文件
keytool -genkey -keystore XX.keystore –alias XX
这里会输入一堆的设定信息
3. 使用产生的密钥对 jar 档进行签名
jarsigner -keystore XX.keystore XX.jar XX
4. 将公钥导入到一个cer 文件中,这个文件会被导入到客户端
keytool -export -keystore XX.keystore -alias XX -file XX.cer
接着这些文件 XX.jar;XX.keystore; XX.cer 放入服务端的目录下。
在客户端:
1. 将服务端生成的 XX.cer 导入到jre 的 lib\security 下。
2. 将公钥导入到 cacerts
keytool -import -alias XX -file XX.cer -keystore cacerts
这儿要你输入的是cacerts的密码,应该是changeit
3. 修改policy策略文件,在dos状态下使用命令 policytool
前言
Java 数字签名原理及产生相关推荐
- C语言的EDS与RSA算法,数字签名原理eds算法是什么_生辰八字是什么算法
数字签名算法sha-1的fpga高速实现 数字签名算法sha-1的fpga高速实现 数字签名技术原理介绍 数字签名算法sha 1的fpga高速实现 数字签名算法sha-1的fpga高速实现 数字签名算 ...
- java智能卡开发_《Java智能卡原理与应用开发》PDF 下载
图书目录: 封面 扉页 版权页 内容简介 出版说明 前言 序 目录 第一部分 Java智能卡编程基础 第1章 绪言 1.1 智能卡简介 1.2 Java智能卡简介 1.3 发展前景 1.3.1 智能卡 ...
- 一个基于RSA算法的Java数字签名例子
====================================================== 注:本文源代码点此下载 ================================= ...
- 《Java虚拟机原理图解》5. JVM类加载器机制与类加载过程
参考网址:http://blog.csdn.net/luanlouis/article/details/50529868 0.前言 读完本文,你将了解到: 一.为什么说Jabalpur语言是跨平台的 ...
- 【Java 虚拟机原理】Class 字节码二进制文件分析 七 ( 局部变量表分析 )
文章目录 前言 一.编译生成带局部变量表的字节码文件 二.局部变量表 前言 上一篇博客 [Java 虚拟机原理]Class 字节码二进制文件分析 二 ( 常量池位置 | 常量池结构 | tag | i ...
- 【Java 虚拟机原理】Class 字节码二进制文件分析 六 ( 属性类型 | Code 属性 | 属性名称索引 | 属性长度 | 操作数栈最大深度 | 局部变量存储空间 | 字节码长度 )
文章目录 前言 一.属性类型 二.Code 属性表数据结构 三.属性名称索引 四.属性长度 五.操作数栈最大深度 六.局部变量存储空间 七.字节码长度 八.存储字节码指令的一系列字节流 前言 上一篇博 ...
- 【Java 虚拟机原理】Class 字节码二进制文件分析 五 ( 方法计数器 | 方法表 | 访问标志 | 方法名称索引 | 方法返回值类型 | 方法属性数量 | 方法属性表 )
文章目录 前言 一.方法表结构 二.方法计数器 三.方法表数据解析 ( init 构造方法 ) 1.方法访问标志 2.方法名称索引 3.方法返回类型 4.方法属性数量 前言 上一篇博客 [Java 虚 ...
- 【Java 虚拟机原理】Class 字节码二进制文件分析 四 ( 字段表数据结构 | 字段表详细分析 | 访问标志 | 字段名称 | 字段描述符 | 属性项目 )
文章目录 前言 一.字段表总数据结构 二.访问标志 三.字段名称 四.字段描述符 五.属性项目数 前言 上一篇博客 [Java 虚拟机原理]Class 字节码二进制文件分析 三 ( 访问和修饰标志 | ...
- 【Java 虚拟机原理】Class 字节码二进制文件分析 三 ( 访问和修饰标志 | 类索引 | 父类索引 | 接口计数器 | 接口表 | 字段计数器 | 字段表 )
文章目录 前言 一.访问和修饰标志 二.类索引 三.父类索引 四.接口计数器 五.接口表 六.字段计数器 七.字段表 前言 上一篇博客 [Java 虚拟机原理]Class 字节码二进制文件分析 二 ( ...
最新文章
- java process started_Java HistoricProcessInstanceQuery.startedBy方法代碼示例
- Tomcat启动报错 Could not reserve enough space for object heap
- Redis数据库的应用场景介绍
- Egret 生成 自带EUI 的微信小游戏 踩坑!
- shell脚本:lvs启动简易脚本
- 【启智树NOIP模拟】生存【父子分治】
- Java 基础——构造器和方法的区别
- RocketMQ(十一)——消费的幂等性
- ppt手动放映怎么设置_一键解决PPT的动画播放和动画排序问题!
- (41)FPGA状态机一段式
- 第三周课程总结实验报告一
- 轻轻一扫立刻扣款,付款码技术原理大揭秘 | 原力计划
- java socket 组包_关于socket 分包和组包
- 四种模式、五大架构 规划企业物联网蓝图
- 如何在 Windows Server 2003 中配置权威时间服务器
- 几种分段多项式曲线插值(拟合)的方式(含贝塞尔曲线和B样条[B-spline])
- 深度解析copy与strong的区别
- 三节锂电池充电芯片,IC设计模块的几种电路
- 什么是cidaemon.exe进程
- icloud连接服务器时出现问题_icloud连接服务器失败怎么办-互盾苹果恢复精灵
热门文章
- codeforce 780C Andryusha and Colored Balloons
- HDU 1085 Holding Bin-Laden Captive!
- vbs 一些学习资料
- Java面向对象编程 第一章 面向对象开发方法概述
- 关于线程中断的3个重要方法总结
- 你在成长为一个优秀的程序员吗
- [推荐]查看Json输出的*最方便*的方法 (转)
- 【白皮书分享】2020中国美颜消费趋势白皮书.pdf(附下载链接)
- 【报告分享】2020年数字政府新基建发展白皮书.pdf(附下载链接)
- 推荐系统应该如何保障推荐的多样性?