俺来想想,
将字母项转化为在26个字母的位置,这样整个字符串就全都是数字了
再想想用加减乘除把这个字符串缩成6位就是了~~
将字母项转化为在26个字母的位置,这样整个字符串就全都是数字了
再想想用加减乘除把这个字符串缩成6位就是了~~
解决方案 »
- 关于JQuery脚本文件之间引用的顺序问题
- 如何定义一个数组啊
- 想问下Qzone(QQ空间)中屏幕截图是怎么实现的呢
- 请教一个问题
- 请问能否在页面中往.js文件里传值 比如像<script src=abc.js?id=1234234&name=meizz></script>
- function调用的问题
- 我认为有绝对难度,关于表格的问题,100分恳请高手帮忙,如果认为分不够,我还可以再给!只要你能帮我解决这问题!
- 急!!!!各位老大帮忙
- 请问javascript函数的大小是否有限制
- :有个问题,我有个控件要在网页上用,但不能确定客户系统中有没有,我想要flash控件一样,若客户端没有就自动下载并装入系统,请问该什样做
- 怎样用脚本实现:根据屏幕的分辨率设置<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位的字串(直接显示为乱码)存起来是可能的.