如题,如果可能最好能给出例子,多谢了

解决方案 »

  1.   


    md5,sha.估计你要的就是这个。
      

  2.   

    import java.security.*;
    import java.security.spec.*; 
    class MD5_Test{   public final static String MD5(String s){
         char hexDigits[] = {
             '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd',
             'e', 'f'};
         try {
           byte[] strTemp = s.getBytes();
           MessageDigest mdTemp = MessageDigest.getInstance("MD5");
           mdTemp.update(strTemp);
           byte[] md = mdTemp.digest();
           int j = md.length;
           char str[] = new char[j * 2];
           int k = 0;
           for (int i = 0; i < j; i++) {
             byte byte0 = md[i];
             str[k++] = hexDigits[byte0 >>> 4 & 0xf];
             str[k++] = hexDigits[byte0 & 0xf];
             }
             return new String(str);
           }
           catch (Exception e){
             return null;
           }
    }
     public static void main(String[] args){
     //MD5_Test aa = new MD5_Test(); System.out.print(MD5_Test.MD5("XX"));
     }
      

  3.   

    MD2,MD5,SHA1
    你需要的是文摘算法
      

  4.   

    sra算法也不错阿,不就是要加密一下么?
      

  5.   

    实际情况是这样的:要根据一个数组(数组长度不定),如;new String{"12345","skld43","3eij",...},获得一个固定长度的压缩字符串,而且这个字符串是唯一的,也就是,输入不同,输出也是不同的,对于相同的输入,其输出必是相同的。
        但是有一点比较困惑,既然输出的字符串是定长的,那么,其组合方式必然是固定的,也就是说有固定的n种组合,而输入是无限的,从这一点上说,对于不同的输入就有不同的输出显然是矛盾的。
      
      望各位大侠给与指教
      

  6.   

    一种是无限数量的信息,一种是有限的信息,你要那种一对一的算法是不可能的。我给的是jdk自己带的md5方法,你可以试试。虽然说理论上存在多个字符串对应同一个md5码,但实际上遇到的很少。