根据一个字符串数组(长度不定),如何生成一个唯一的压缩字符串? 如题,如果可能最好能给出例子,多谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 md5,sha.估计你要的就是这个。 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")); } MD2,MD5,SHA1你需要的是文摘算法 sra算法也不错阿,不就是要加密一下么? 实际情况是这样的:要根据一个数组(数组长度不定),如;new String{"12345","skld43","3eij",...},获得一个固定长度的压缩字符串,而且这个字符串是唯一的,也就是,输入不同,输出也是不同的,对于相同的输入,其输出必是相同的。 但是有一点比较困惑,既然输出的字符串是定长的,那么,其组合方式必然是固定的,也就是说有固定的n种组合,而输入是无限的,从这一点上说,对于不同的输入就有不同的输出显然是矛盾的。 望各位大侠给与指教 一种是无限数量的信息,一种是有限的信息,你要那种一对一的算法是不可能的。我给的是jdk自己带的md5方法,你可以试试。虽然说理论上存在多个字符串对应同一个md5码,但实际上遇到的很少。 关于继承的问题,小弟不解泪奔中~求各位大侠相助 菜题,抛出异常问题 有十个字符拼成的字符串,每个字符可能出现的字符,是a-z,怎么算出可能出现的排列组合 请问怎样释放内存啊??? Redhat8+JSP乱码 SMTP协议,返回正确,但为什么收不到邮件呢? java有没有现成的消息弹出框函数MessageBox()?在线等待。。。 谁能详细的介绍一下接口的概念和功能,我现在很模糊(最好有例子)谢谢!!! jav反编译程序在哪儿有下载? 新手想请教文件列表怎么实现 简单问题,紧急求助!!!! 关于 C struct 和java object
md5,sha.估计你要的就是这个。
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"));
}
你需要的是文摘算法
但是有一点比较困惑,既然输出的字符串是定长的,那么,其组合方式必然是固定的,也就是说有固定的n种组合,而输入是无限的,从这一点上说,对于不同的输入就有不同的输出显然是矛盾的。
望各位大侠给与指教