俺来想想,
将字母项转化为在26个字母的位置,这样整个字符串就全都是数字了
再想想用加减乘除把这个字符串缩成6位就是了~~
将字母项转化为在26个字母的位置,这样整个字符串就全都是数字了
再想想用加减乘除把这个字符串缩成6位就是了~~
解决方案 »
- 求助ext的doLayout问题
- js 读取ini 配置文件
- 焦点获取问题!请各位帮帮小妹!
- jquery,总报'fn'为空或不是对象的错误提示?
- 急!如何跨过frame取得对象?!
- JS细节问题
- 请问一下高手, 这二句我是在SOHU的网页看到的能不能帮我解释一下呀是怎么样得到值的呀!能不能给一个例子呀!
- 在网页中的javascipt函数如何调用另外一个。js文件的函数,重要的是参数如何调用何返回
- 如何作一个图形
- 一个巨难的问题,能否在IE中实现鼠标动态画图的功能.
- 怎样用脚本实现:根据屏幕的分辨率设置<object width=xx height=yy></object>中的宽和高?
- 关于jsp页面中嵌excel表格来返回数据库的数据的问题
大家都想一想
<HTML>
<HEAD>
<TITLE> emu's sample of digest </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="emu">
<META NAME="Keywords" CONTENT="digest">
<META NAME="Description" CONTENT="emu's sample of digest">
</HEAD><BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
function String.prototype.myDigest(n){
if (this.length==0) return new Array(n+1).join("0");
if (isNaN(n) || n<6) n=6;
n=Math.round(n);
if (n>16) n=16;
var m = Math.pow(10,n);
var s = this;
s = s + "':SDFh$76@4)(_>?<;l;eoGS=|\sda!S6fSrincv/.,HG"+s;
var ar=[];
for (var i=0;i<s.length;i++){
j = s.charCodeAt(i);
ar[i] = j*j;
}
var l = ar.length;
var l2 = l << 1;
var a = ar.concat();
ar=ar.reverse();
for (var k=1;k<n;k++)
for (var i=0;i<ar.length;i++){
ar[i] = ar[i] ^ (a[(i+k)%l]);
}
var r = 1;
for (i=0;i<ar.length;i++)
r = ((ar[i]+1)%(m+1))*r;
s = (r%m).toString();
return new Array(n-s.length+1).join("0")+s;
}//-->
</SCRIPT>
<input id=test>
<input type=button onclick='alert("digest result:"+test.value.myDigest(6))' value="test">
</BODY>
</HTML>
6位数字的组合只有 10^6=1000000种
没有这样的编码/解码函数让他们可以相互1-1转换的,因为有抽屉原理的限制。
所以只能做摘要。
但是编码成为6位的字串(直接显示为乱码)存起来是可能的.