高手请进,写一段代码

taih 2009-07-25 02:44:47
需要写一段字符串加密代码
1.要对0至9数字进行转换
2.要对a至z 26个小写字母进行转换
3.要对A至Z 26个大写字母进行转换
4.其它字符保持原样不变
5.数字及字母对应表如下:
原字符 0123456789 a至z A至Z
对应字符 EAhfk91sQe 8VptI57XNYqM2KnUo03FJWjlrv DLPZZxymHSbdgOG4uRcCwzB6ai

比如字符串 1a2$8 经过转换后应该是 A8h$Q

请高手帮忙写这样的转换代码

...全文
122 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
taih 2009-07-25
  • 打赏
  • 举报
回复
不好意思看错了,已经有了,非常感谢这么多热心的兄弟,结贴
taih 2009-07-25
  • 打赏
  • 举报
回复
谢谢hookee的解答,能不能再麻烦一下,帮忙写这个算法的逆算的函数
toury 2009-07-25
  • 打赏
  • 举报
回复

<script>
window.onload=function(){

var s1="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var s2="EAhfk91sQe8VptI57XNYqM2KnUo03FJWjlrvDLPZZxymHSbdgOG4uRcCwzB6ai"
var arr1=[]
var arr2=[];
var a=document.getElementById("a");//alert(a)
var b=document.getElementById("b")
for (var i=0;i<s1.length;i++){
arr1[i]=s1.substr(i,1);//a.innerHTML+=i+"__"+(i+1)+":"+arr1[i]+"<br>"
arr2[i]=s2.substr(i,1);//b.innerHTML+=i+"__"+(i+1)+":"+arr2[i]+"<br>"
}

var s="1a2$8";
var temp='';
var bln=false;
for (var i=0;i<s.length;i++){
bln=false;
for (var j=0;j<arr1.length;j++){
if(s.substr(i,1)==arr1[j]){
temp+=arr2[j];
bln=true;
break;
}
}
if(!bln){temp+=s.substr(i,1)}
}

alert(temp)
}
</script>

toury 2009-07-25
  • 打赏
  • 举报
回复

<script>
window.onload=function(){

var s1="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var s2="EAhfk91sQe8VptI57XNYqM2KnUo03FJWjlrvDLPZZxymHSbdgOG4uRcCwzB6ai"
var arr1=[]
var arr2=[];
var a=document.getElementById("a");//alert(a)
var b=document.getElementById("b")
for (var i=0;i<s1.length;i++){
arr1[i]=s1.substr(i,1);//a.innerHTML+=i+"__"+(i+1)+":"+arr1[i]+"<br>"
arr2[i]=s2.substr(i,1);//b.innerHTML+=i+"__"+(i+1)+":"+arr2[i]+"<br>"
}

var s="1a2$8";
var temp='';
var bln=false;
for (var i=0;i<s.length;i++){
bln=false;
for (var j=0;j<arr1.length;j++){
if(s.substr(i,1)==arr1[j]){
temp+=arr2[j];
bln=true;
break;
}
}
if(!bln){temp+=s.substr(i,i+1)}
}

alert(temp)
}
</script>

zpzk123 2009-07-25
  • 打赏
  • 举报
回复
刚才有个地方写错了,再给一下代码
function sbc(sb,n)'加密 
a="0E,1A,2h,3f,4k,59,61,7s,8Q,9e,a8,bV,cp,dt,eI,f5,g7,hX,iN,jY,kq,lM,m2,nK,on,pU,qo,r0,s3,tF,uJ,vW,wj,xl,yr,zv,AD,BL,CP,DZ,ET,Fx,Gy,Hm,IH,JS,Kb,Ld,Mg,NO,OG,P4,Qu,RR,Sc,TC,Uw,Vz,WB,X6,Ya,Zi"
b=split(a,",")
if n=1 then
for i=0 to ubound(b)
sb=replace(sb,left(b(i),1),right(b(i),1))
next
else
for i=0 to ubound(b)
sb=replace(sb,right(b(i),1),left(b(i),1))
next
end if
sbc=sb
end function
zpzk123 2009-07-25
  • 打赏
  • 举报
回复
我这个相对要简单些吧,呵呵,
zpzk123 2009-07-25
  • 打赏
  • 举报
回复
我当一回傻瓜,给你写一段,就在这儿写,未测试啊,呵呵,命名sbc(sb,n)
n=1 为加密,n=2解密

和重码啊,呵呵DLPZZxymHSbdgOG4uRcCwzB6ai
这里面有两个Z
改成这样了啊
DLPZTxymHSbdgOG4uRcCwzB6ai
function sbc(sb,n)'加密
a="0E,1A,2h,3f,4k,59,61,7s,8Q,9e,a8,bV,cp,dt,eI,f5,g7,hX,iN,jY,kq,lM,m2,nK,on,pU,qo,r0,s3,tF,uJ,vW,wj,xl,yr,zv,AD,BL,CP,DZ,ET,Fx,Gy,Hm,IH,JS,Kb,Ld,Mg,NO,OG,P4,Qu,RR,Sc,TC,Uw,Vz,WB,X6,Ya,Zi"
b=split(a,",")
if n=1 then
for i=0 to ubound(b)
sb=replace(a,left(b(i),1),right(b(i),1))
next
else
for i=0 to ubound(b)
sb=replace(a,right(b(i),1),left(b(i),1))
next
end if
sbc=sb
end function

调用方法:
1、加密:str="123sdfsdfghj"
response.write sbc(str,1)
2、解密:str="123sdfsdfghj"
response.write sbc(str,2)
hookee 2009-07-25
  • 打赏
  • 举报
回复

Function dec(s)
Dim sNum, sLow, sUp, t, c
Dim iNum0, iNum9, iLowA, iLowZ, iUpA, iUpZ, i, iPos

sNum = "EAhfk91sQe"
sLow = "8VptI57XNYqM2KnUo03FJWjlrv"
sUp = "DLPZZxymHSbdgOG4uRcCwzB6ai"
iNum0 = Asc("0")
iNum9 = Asc("9")
iLowA = Asc("a")
iLowZ = Asc("z")
iUpA = Asc("A")
iUpZ = Asc("Z")
t = ""
For i = 1 To Len(s)
c = Mid(s, i, 1)
iPos = InStr(sNum, c)
If iPos > 0 Then
t = t & Chr(iNum0 + iPos -1)
Else
iPos = InStr(sLow, c)
If iPos > 0 Then
t = t & Chr(iLowA + iPos -1)
Else
iPos = InStr(sUp, c)
If iPos > 0 Then
t = t & Chr(iUpA + iPos -1)
Else
t = t & Mid(s,i,1)
End If
End If
End If
Next
dec = t
End Function

str = "1a2$8"

Response.Write dec(enc(str))
hookee 2009-07-25
  • 打赏
  • 举报
回复

Function enc(s)
Dim sNum, sLow, sUp, t
Dim iNum0, iNum9, iLowA, iLowZ, iUpA, iUpZ, i, iAsc

sNum = "EAhfk91sQe"
sLow = "8VptI57XNYqM2KnUo03FJWjlrv"
sUp = "DLPZZxymHSbdgOG4uRcCwzB6ai"
iNum0 = Asc("0")
iNum9 = Asc("9")
iLowA = Asc("a")
iLowZ = Asc("z")
iUpA = Asc("A")
iUpZ = Asc("Z")
t = ""
For i=1 To Len(s)
iAsc = Asc(Mid(s,i,1))
If iAsc>=iNum0 And iAsc<=iNum9 Then
t = t & Mid(sNum,iAsc-iNum0+1,1)
ElseIf iAsc>=iLowA And iAsc<=iLowZ Then
t = t & Mid(sLow,iAsc-iLowA+1,1)
ElseIf iAsc>=iUpA And iAsc<=iUpZ Then
t = t & Mid(sUp,iAsc-iUpA+1,1)
Else
t = t & Mid(s,i,1)
End If
Next
enc = t
End Function

str = "1a2$8"

Response.Write enc(str)
落日听风 2009-07-25
  • 打赏
  • 举报
回复
少活一年
oywkkai 2009-07-25
  • 打赏
  • 举报
回复
这要掉多少头发啊
  • 打赏
  • 举报
回复
你真会想,这么一个算法让人帮你写,不知道要伤多少脑细胞了!

28,404

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧