知识大全 在Jini,RMI和Applet中如何实现代码签名
Posted 文件
篇首语:一卷旌收千骑虏,万全身出百重围。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在Jini,RMI和Applet中如何实现代码签名相关的知识,希望对你有一定的参考价值。
在Jini,RMI和Applet中如何实现代码签名 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
第一段代码:生成公开/私有密钥对并在命令行中指定文件 把密钥对写入该文件 import java security *; import java io *; public class KeyPairGen public static void main(String[] args) if(args length!= ) System out println( Usage: java KeyPairGen KeyFile ); System exit( ); KeyPairGen obj=new KeyPairGen(); try obj gen(args[ ]); catch(NoSuchAlgorithmException ex) System out println( NoSuchAlgorithmException ); catch(FileNotFoundException ex) System out println( FileNotFoundException ); catch(IOException ex) System out println( IOException ); public void gen(String source) throws NoSuchAlgorithmException FileNotFoundException IOException KeyPairGenerator kpGen=KeyPairGenerator getInstance( DSA ); kpGen initialize( ); KeyPair kPair=kpGen genKeyPair(); FileOutputStream fos=new FileOutputStream(source); ObjectOutputStream oos=new ObjectOutputStream(fos); oos writeObject(kPair); fos close(); oos close(); 第二段代码 命令行中指定存放密钥的文件 用于签名的字符串(这里使用字符串只是为了简单 其实在真正实际使用中应该换成用MD 或SHA 算法计算某一文件流的消息摘要值)和签名所存放的文件 功能是计算出签名并把该签名存放在文件中 import java security *; import java io *; public class SignGen public static void main(String[] args) if(args length!= ) System out println( Usage: java SignGen KeyFile String SigFile ); System exit( ); SignGen obj=new SignGen(); try obj genSignature(args[ ] args[ ] args[ ]); catch(NoSuchAlgorithmException ex) System out println( NoSuchAlgorithmException ); catch(InvalidKeyException ex) System out println( InvalidKeyException ); catch(SignatureException ex) System out println( SignatureException ); catch(ClassNotFoundException ex) System out println( ClassNotFoundException ); catch(FileNotFoundException ex) System out println( FileNotFoundException ); catch(IOException ex) System out println( IOException ); public void genSignature(String keyFile String str String sigFile) throws NoSuchAlgorithmException InvalidKeyException SignatureException ClassNotFoundException FileNotFoundException IOException FileInputStream fis=new FileInputStream(keyFile); ObjectInputStream ois=new ObjectInputStream(fis); KeyPair kp=(KeyPair)ois readObject(); PublicKey pubKey=kp getPublic(); PrivateKey priKey=kp getPrivate(); fis close(); ois close(); Signature sig=Signature getInstance( SHA WithDSA ); sig initSign(priKey); sig update(str getBytes()); byte[] b=sig sign(); FileOutputStream fos=new FileOutputStream(sigFile); ObjectOutputStream oos=new ObjectOutputStream(fos); oos writeObject(b); fos close(); oos close(); 第三段代码当然是用于验证签名了 命令行中指定三个参数 密钥文件 更新验证的字符串和签名文件 import java security *; import java io *; public class SignVerify public static void main(String[] args) if(args length!= ) System out println( Usage: java SignVerify KeyFile String SigFile ); System exit( ); SignVerify obj=new SignVerify(); try obj verify(args[ ] args[ ] args[ ]); catch(NoSuchAlgorithmException ex) System out println( NoSuchAlgorithmException ); catch(InvalidKeyException ex) System out println( InvalidKeyException ); catch(SignatureException ex) System out println( SignatureException ); catch(ClassNotFoundException ex) System out println( ClassNotFoundException ); catch(FileNotFoundException ex) System out println( FileNotFoundException ); catch(IOException ex) System out println( IOException ); public void verify(String keyFile String str String sigFile) throws NoSuchAlgorithmException InvalidKeyException SignatureException ClassNotFoundException FileNotFoundException IOException FileInputStream fis=new FileInputStream(keyFile); ObjectInputStream ois=new ObjectInputStream(fis); KeyPair kp=(KeyPair)ois readObject(); PublicKey pubKey=kp getPublic(); PrivateKey priKey=kp getPrivate(); fis close(); ois close(); FileInputStream fis =new FileInputStream(sigFile); ObjectInputStream ois =new ObjectInputStream(fis ); byte[] b=(byte[])ois readObject(); fis close(); ois close(); Signature sig=Signature getInstance( SHA WithDSA ); sig initVerify(pubKey); sig update(str getBytes()); if(sig verify(b)) System out println( Verify OK! ); else System out println( Verify Error! ); 在验证过程中 密钥对 字符串和签名一个都不能错 否则无法通过验证 cha138/Article/program/Java/hx/201311/26967相关参考
核心技术在Applet中实现数字签名 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 准备工作当然
一般默认情况下EclipseMyEclipse的代码提示功能是比MicrosoftVisualStudio的差很多的主要是EclipseMyEclipse本身有很多选项是默认关闭的要开发者自己去手
Java2下Applet数字签名 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 自从Java技术
对JavaApplet和JavaWebStart进行数字签名 我们知道JavaApplet和JavaWebStart程序在运行的时候受到安全限制例如不能够访问本地文件系统不能够随意访问网络本文将
在php中要记录页面中代码执行时间我们只使用microtime函数生成时间然后在最后把开始与结束时间相减即可解决了 核心代码 代码如下 $t=microtim
相对动量指标说明1、顶和低相对动量指标(RMI)通常在70以上到顶和在30以下到底(图中深蓝色箭头)。RMI通常先于随附的价格图表形成这些顶部和底部。2、形态相对动量指标(RMI)经常形成价格图中可能
Spring2.5整合RMI技术 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java的RMI
Java远程方法调用RMI 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 前段时间公司做webs
一个相当经典的RMI实例源代码及详细说明 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! RMI技
JAVARMI远程方法调用简单实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! RMI的概念