求救!!!VBSCRIPT

bljbljbljblj 2002-03-28 05:13:05
我的问题是:编写一个函数,把一短明文转换成密文,密文是十六进制的数据,请给出具体的程序:

我的情况:VB 不会,VBS 连十进制转换成16进制都不会



方法一:
函数原型是:
'
'参数:strText:要转换的字串
' strText2:转换后的字串
' bTrans: 1:明文转换成密文,1:密文转换成明文
function trans(strText,strText2,bTrand)

方法二:
'
'strText:要转换的字串
'
' bTrans: 1:明文转换成密文,1:密文转换成明文
'函数返回转换后的字串
'

function trand(strText,bTrans)
...全文
165 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
julyclyde 2002-04-01
  • 打赏
  • 举报
回复
不是asc是chr
我写错了
bljbljbljblj 2002-04-01
  • 打赏
  • 举报
回复
谢谢julyclyde,分我给过了,一个更菜的问题等你去拿分:
http://www.csdn.net/expert/topic/614/614057.xml?temp=9.089297E-02
julyclyde 2002-03-31
  • 打赏
  • 举报
回复
你那样转换也太累了吧
比如把41(16进制)转换为字符A,就用
asc(cint("&H"+"41"))
bljbljbljblj 2002-03-31
  • 打赏
  • 举报
回复
例如
我要转换的是
SELECT * FROM v_kcxx_sum where sv_wzname like '%螺%' order by sv_wzbm

转换后成:
53454C454354202A2046524F4D20765F6B6378785F73756D207768657265202073765F777A6E616D65206C696B65202725C2DD2527206F726465722062792073765F777A626D

还原后成:
SELECT * FROM v_kcxx_sum where sv_wzname like '%

“螺”字后面的都没有了
bljbljbljblj 2002-03-31
  • 打赏
  • 举报
回复
老问题解决了
新问题来了,我编写的函数是这样:(如下)
但是出现了问题:当转换一段字母的时候能正常转换,但是有汉字的时候从出现第一个汉字那开始后面的都不能转换

<%
function Translate(str)
dim nLoop
dim result
dim l
dim ch
if isNULL(str) then
Translate=""
exit function
end if
l=len(str)
result=""
nLoop=0
dim i
for i = 1 to l
ch=hex(asc(mid(str,i,1)))'-nLoop)
result =result+ ch
nLoop=nLoop+1
if nLoop >=15 then
nLoop=0
end if
next
Translate=result

end function
%>



<%

function Translate2(str)
dim result
dim l,i
dim vh,v
dim nLoop
if isNULL(str) then
Translate2=""
exit function
end if
result=""
l=len(str)
nLoop=0
for i=1 to l-1 step 2
select case mid(str,i,1)
case "1"
vh=1
case "2"
vh=2
case "3"
vh=3
case "4"
vh=4
case "5"
vh=5
case "6"
vh=6
case "7"
vh=7
case "8"
vh=8
case "9"
vh=9
case "0"
vh=0
case "A"
vh=10
case "B"
vh=11
case "C"
vh=12
case "D"
vh=13
case "E"
vh=14
case "F"
vh=15
end select
v=vh*16
select case mid(str,i+1,1)
case "1"
vh=1
case "2"
vh=2
case "3"
vh=3
case "4"
vh=4
case "5"
vh=5
case "6"
vh=6
case "7"
vh=7
case "8"
vh=8
case "9"
vh=9
case "0"
vh=0
case "A"
vh=10
case "B"
vh=11
case "C"
vh=12
case "D"
vh=13
case "E"
vh=14
case "F"
vh=15
end select
v=v+vh'+nLoop
result=result+chr(v)

nLoop=nLoop+1
if nLoop >=15 then
nLoop=0
end if
next
Translate2=result
end function
%>
bljbljbljblj 2002-03-29
  • 打赏
  • 举报
回复
好的
基本解决
不过我又遇到麻烦了!!!
请把
"4142434445464748494A4B4C"
转换成“ABCDEFGHIJK”
因为
“A”的ASCII值是65,十六进制值是 41
“B”的ASCII值是66,十六进制值是 42
“C”的ASCII值是67,十六进制值是 43
“D”的ASCII值是68,十六进制值是 44
.......
julyclyde 2002-03-28
  • 打赏
  • 举报
回复
VBS有hex函数
bljbljbljblj 2002-03-28
  • 打赏
  • 举报
回复
:)一步一步教我的了



比如
str="I love you "
我想获得str中第三个字符的ASCII值怎么获取?
bljbljbljblj 2002-03-28
  • 打赏
  • 举报
回复
是要加密,但是不知道怎么个加法,就来找大家了
jinhaiou 2002-03-28
  • 打赏
  • 举报
回复
用x=hex(**)
jinhaiou 2002-03-28
  • 打赏
  • 举报
回复
哪你還不如加密.
bljbljbljblj 2002-03-28
  • 打赏
  • 举报
回复
对了,我用在ASP中,不是在VB中用的
不好意思

28,406

社区成员

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

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