当前所在位置:珠峰网资料 >> 计算机 >> 软件水平 >> 正文
算法:SIPC的认证算法java实现(1)
发布时间:2010/11/10 15:30:38 来源:www.xue.net 编辑:城市总裁吧
     SIPC的认证算法,支持SHA1和MD5。
  import java.io.UnsupportedEncodingException;
  import java.util.Calendar;
  import java.util.GregorianCalendar;
  import java.util.Random;
  public class GenAuthResponse {
  // Fields
  private String cnonce;
  private String domain;
  private String nonce;
  private String password;
  private static Random random;
  private String sid;
  private boolean usingSHA1=false;
  private String salt;
  private String encryptPassword;
  public void setSalt(String salt) {
  this.salt = salt;
  }
  public String getEncryptPassword() {
  return encryptPassword;
  }
  public void setEncryptPassword(String encryptPassword) {
  this.encryptPassword = encryptPassword;
  }
  public String getSalt() {
  return salt;
  }
  // public void setSalt(String salt) {
  // this.salt = salt;
  // }
  public boolean isUsingSHA1() {
  return usingSHA1;
  }
  public void setUsingSHA1(boolean usingSHA1) {
  this.usingSHA1 = usingSHA1;
  }
  public String getCnonce() {
  return this.cnonce;
  }
  public void setCnonce(String cnonce) {
  this.cnonce = cnonce;
  }
  public String getDomain() {
  return domain;
  }
  public void setDomain(String domain) {
  this.domain = domain;
  }
  public String getNonce() {
  return nonce;
  }
  public void setNonce(String nonce) {
  this.nonce = nonce;
  }
  public String getPassword() {
  return password;
  }
  public void setPassword(String password) {
  this.password = password;
  }
  public String getSid() {
  return sid;
  }
  public void setSid(String sid) {
  this.sid = sid;
  }
  // Methods
  public GenAuthResponse(String sid, String password, String domain, String nonce)
  {
  this.sid = sid;
  this.password = password;
  this.domain = domain;
  this.nonce = nonce;
  Calendar cal = new GregorianCalendar();
  int seed = cal.get(Calendar.DAY_OF_YEAR) * 0xf4240;
  seed += cal.get(Calendar.HOUR) * 0x2710;
  seed += cal.get(Calendar.MINUTE) * 100;
  seed += cal.get(Calendar.SECOND);
  // random = new Random(System.currentTimeMillis());
  random = new Random(seed);
  this.cnonce = GenCNonce();
  this.salt=GenSalt();
  // System.out.println(salt);
  }
  private static String BinToHex(byte[] binary)
  {
  // StringBuilder builder = new StringBuilder();
  // for(byte num : binary)
  // {
  // int n = num;
  // if (n < 0)
  // n = n &0xff;
  //
  // if ((int)n > 15)
  // {
  // builder.append(String.format("%X",n));
  //
  // }
  // else
  // {
  // builder.append(String.format("0%X",n));
  //
  // }
  // }
  //// System.out.println(builder.toString());
  // return builder.toString();
  if (binary == null)
  return "null";
  if (binary.length == 0)
  return "";
  StringBuilder buf = new StringBuilder();
  for (int i = 0; i < binary.length; i++) {
  if (binary[i] < 0)
  buf.append(Integer.toHexString(binary[i]&0xff));
  else if (binary[i] < 16) {
  buf.append('0');
  buf.append(Integer.toHexString(binary[i]));
  } else {
  buf.append(Integer.toHexString(binary[i]));
  }
  }
  return buf.toString().toUpperCase();
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved