关于在applet中对jar包进行数字签名问题.
来源:互联网 发布:bug单网络用语什么意思 编辑:程序博客网 时间:2024/06/05 02:14
昨天真郁闷....部门老大给我提出了一种难于想象的需求,通常我们从网站上下载文件都有IE弹出框。
而他对我的要求是:不要弹出IE对话框,点按钮后直接把文件保存到本地。
当时即时晕倒,都不知道是什么客户来的,居然有这种需求。-_-!
综合考虑后,我决定用applet在客户端运行一段代码。在客户端里用apache的开源项目httpClient模拟http请求(如输入用户名密码登陆,浏览某个连接下载等)。由于要涉及到读写客户端的磁盘文件,所以在客户端运行程序的时候必定会抛出securityException。当时在这里折腾了很久,老是把注意力里集中在修改客户端的安全策略文件上。
事实上,有一种更好的办法,那就是对applet程序所依赖的jar包进行数字签名。
步骤如下:
打开命令行窗口,定位到c:/目录下。
1、keytool -genkey -keystore pepper.store -alias pepper
这个命令用来产生一个密匙库,执行完毕后应该在c:/中产生一个pepper.store的文件,这里的pepper是我自己的名字,你可以对它进行修改。另外在执行命令的时候还有提示你输入密匙库的密码,这里你一定要记住,否则后面要用的时候无法输入。
2、 keytool -export -keystore pepper.store -alias pepper -file pepper.cert
这个命令用来产生签名时所要用的证书,同样这里的pepper也可以换成你自己需要的名字。这个命令执行完后在c:/中产生一个pepper.cert的文件。
3、 jarsigner -keystore pepper.store myapplet.jar pepper
这个命令用上面产生的证书将我们的jar文件进行了签名。(myapplet.jar是我们项目中所依赖的jar包)
执行完以上三步之后,就已经完全可以了。而不需要像网上某些文章说的那样还要修改客户端的安全策略文件。
最后在页面上把applet标记加上
<applet code="Tasdf.class" CODEBASE = "." archive="myapplet.jar" width=30 height=15>
</applet>
而他对我的要求是:不要弹出IE对话框,点按钮后直接把文件保存到本地。
当时即时晕倒,都不知道是什么客户来的,居然有这种需求。-_-!
综合考虑后,我决定用applet在客户端运行一段代码。在客户端里用apache的开源项目httpClient模拟http请求(如输入用户名密码登陆,浏览某个连接下载等)。由于要涉及到读写客户端的磁盘文件,所以在客户端运行程序的时候必定会抛出securityException。当时在这里折腾了很久,老是把注意力里集中在修改客户端的安全策略文件上。
事实上,有一种更好的办法,那就是对applet程序所依赖的jar包进行数字签名。
步骤如下:
打开命令行窗口,定位到c:/目录下。
1、keytool -genkey -keystore pepper.store -alias pepper
这个命令用来产生一个密匙库,执行完毕后应该在c:/中产生一个pepper.store的文件,这里的pepper是我自己的名字,你可以对它进行修改。另外在执行命令的时候还有提示你输入密匙库的密码,这里你一定要记住,否则后面要用的时候无法输入。
2、 keytool -export -keystore pepper.store -alias pepper -file pepper.cert
这个命令用来产生签名时所要用的证书,同样这里的pepper也可以换成你自己需要的名字。这个命令执行完后在c:/中产生一个pepper.cert的文件。
3、 jarsigner -keystore pepper.store myapplet.jar pepper
这个命令用上面产生的证书将我们的jar文件进行了签名。(myapplet.jar是我们项目中所依赖的jar包)
执行完以上三步之后,就已经完全可以了。而不需要像网上某些文章说的那样还要修改客户端的安全策略文件。
最后在页面上把applet标记加上
<applet code="Tasdf.class" CODEBASE = "." archive="myapplet.jar" width=30 height=15>
</applet>
Applet没有权限访问客户端的文件与目录,加个数字签名,方法如下:
将com目录下的所有文件打包为MYJAR.jar
D:/jdk141_02/bin/jar.exe -cvf MYJAR.jar com/
生成签名文件MYKEY.keystore,别名MYJARKEY,这里需要一些个人信息
D:/jdk141_02/bin/keytool.exe -genkey -alias MYJARKEY -keystore MYKEY.keystore
将MYJAR.jar文件用MYKEY.keystore签名
D:/jdk141_02/bin/jarsigner.exe -keystore MYKEY.keystore MYJAR.jar MYJARKEY
一定可以,我试过了你的程序
将com目录下的所有文件打包为MYJAR.jar
D:/jdk141_02/bin/jar.exe -cvf MYJAR.jar com/
生成签名文件MYKEY.keystore,别名MYJARKEY,这里需要一些个人信息
D:/jdk141_02/bin/keytool.exe -genkey -alias MYJARKEY -keystore MYKEY.keystore
将MYJAR.jar文件用MYKEY.keystore签名
D:/jdk141_02/bin/jarsigner.exe -keystore MYKEY.keystore MYJAR.jar MYJARKEY
一定可以,我试过了你的程序
- 关于在applet中对jar包进行数字签名问题.
- 如何对jar包进行数字签名
- 为jar包进行数字签名
- 如何给jar包进行数字签名
- 对Java Applet和Java Web Start进行数字签名
- 为什么需要对applet进行数字签名(digital signature)
- 报错问题 关于在框架中 jar包冲突
- 关于Applet利用数字签名获得本地访问权限的问题
- 关于Applet利用数字签名获得本地访问权限的问题
- 关于对MIDlet套件进行数字签名
- 如何对ActiveX进行数字签名问题
- 关于Html嵌入打成jar包的Applet方法
- 关于Html嵌入打成jar包的Applet方法
- [工作问题总结]jar打包和applet打印数字签名操作步骤[麻瓜都看的懂]
- 对CAB包进行数字签名及实现分发的过程
- 使用SignTool对软件安装包进行数字签名
- 关于两个jar包中存在包名和类名都完全相同的jar包冲突问题
- 关于两个jar包中存在包名和类名都完全相同的jar包冲突问题
- 挑战启动极速(5)---modprobe优化分析
- WEB前端优化
- Java读取CSV文件二
- 判断是否支持wap1.0或wap2.0
- Java读取CSV文件指定行的值
- 关于在applet中对jar包进行数字签名问题.
- 用汇编语言写ESMTP邮件发送程序
- 转载一篇--几个java常用类
- 自动化测试的7个步骤(转载)
- ubuntu 安装 nvidia驱动
- 关于layerX,layerY
- position absolute,relative 定位
- Resolver Activity
- 上传下载