⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sslrandom.java

📁 身份认证和数字签名在实际应用中是通过以数字证书为核心的公开密钥基础结构(PKI)来实现的
💻 JAVA
字号:
/****************************************************************
* 软件:Java签名协议扩展 (Java Signature Protocol Extension, JSPE)
* 版本:V1.0
* 软件功能:实现SSL签名协议
* 模块:公共类SSLRandom
*-----------------------------------------------------------------
*                                 版权所有:中山大学软件研究所 2002
*                          Programmed by 佛山张峰岭 fszfl@21cn.com
*                                              2002.4 - 2002.5
*****************************************************************/
package com.zsusoft.zfl;
import java.util.*;
import java.io.*;
import java.security.*;
/**************
*  类SSLRandom实现SSL签名协议中的Random结构。
***************/
class SSLRandom implements Serializable{
   /**
   *  UNIT 40位格式的请求者内部时钟。如果无法提供填0也可
   **/
   public long gmt_unix_time;   
   /**
   *  由安全的随机数生成器生成的随机数
   **/
   public byte[] random_bytes=new byte[28];
   /**
   *  本构造函数可以产生新的SSLRandom对象,本函数自动填充好需要的信息
   **/
   public SSLRandom() throws Exception{
       gmt_unix_time=(new Date()).getTime();
       SecureRandom srand=SecureRandom.getInstance("SHA1PRNG","SUN");
       srand.setSeed(gmt_unix_time);
       srand.nextBytes(random_bytes);
   }
   /**
   *   本构造函数用参数的数据恢复SSLRandom对象
   **/
   public SSLRandom(long time,byte[] random){
   	gmt_unix_time=time;
   	if(random.length!=28) throw new IllegalArgumentException("随机数序列必须28字节");
   	random_bytes=random;
   }
   /**
    *  把SSLRandom对象内容转换成可视字符串
    **/
    public String toString(){
    	String msg;
    	  msg="<SSLRandom>\r\n";
    	  msg+="gmt_unix_time:"+(new Date(gmt_unix_time)).toString()+"\r\n";
    	  msg+="random_bytes(Hex value):"+Conversion.byteArrayToHexString(random_bytes)+"\r\n";
    	  msg+="</SSLRandom>\r\n";
    	return msg;
    }
   /**
   *  与另外一个SSLRandom对象进行精确比较,内容相等返回true,不相等返回false
   **/
    public boolean equals(SSLRandom other){
    	if (gmt_unix_time != other.gmt_unix_time) return false;
    	for (int i = 0; i<random_bytes.length; ++i) 
    	  if ( random_bytes[i] != other.random_bytes[i] ) return false; 
    	return true;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -