知识大全 在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中实现数字签名

核心技术在Applet中实现数字签名  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  准备工作当然

知识大全 myeclipse中代码提示的设置

  一般默认情况下EclipseMyEclipse的代码提示功能是比MicrosoftVisualStudio的差很多的主要是EclipseMyEclipse本身有很多选项是默认关闭的要开发者自己去手

知识大全 Java2下Applet数字签名

Java2下Applet数字签名  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  自从Java技术

知识大全 如何让applet访问网络

  对JavaApplet和JavaWebStart进行数字签名  我们知道JavaApplet和JavaWebStart程序在运行的时候受到安全限制例如不能够访问本地文件系统不能够随意访问网络本文将

知识大全 php记录页面代码执行时间

  在php中要记录页面中代码执行时间我们只使用microtime函数生成时间然后在最后把开始与结束时间相减即可解决了   核心代码 代码如下   $t=microtim

相对动量指标说明

相对动量指标说明1、顶和低相对动量指标(RMI)通常在70以上到顶和在30以下到底(图中深蓝色箭头)。RMI通常先于随附的价格图表形成这些顶部和底部。2、形态相对动量指标(RMI)经常形成价格图中可能

知识大全 Spring2.5整合RMI技术

Spring2.5整合RMI技术  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java的RMI

知识大全 Java远程方法调用RMI

Java远程方法调用RMI  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前段时间公司做webs

知识大全 一个相当经典的RMI实例源代码及详细说明

一个相当经典的RMI实例源代码及详细说明  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  RMI技

知识大全 JAVA RMI远程方法调用简单实例

JAVARMI远程方法调用简单实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  RMI的概念