[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] [已解决]这个vbs文字加密怎么理解?

  1. str ="你"
  2. ch=Asc(str)
  3. '加密
  4. ch=ch Xor &HFFFF
  5. MsgBox Chr(ch)
  6. '解密
  7. ch=ch Xor &HFFFF
  8. MsgBox Chr(ch)
复制代码
ch=Asc(str)和ch=ch Xor &HFFFF什么意思
中文没在AscII表中啊?还有  ch xor &HFFFF是怎么计算的
1

评分人数

    • zm900612: 感谢给帖子标题标注[已解决]字样PB + 2

asc   返回与字符串的第一个字母对应的 ANSI 字符代码
下面例子中, Asc 返回每一个字符串首字母的 ANSI 字符代码:
  1. Dim MyNumber
  2. MyNumber = Asc("A")      '返回 65。
  3. MyNumber = Asc("a")      '返回 97。
  4. MyNumber = Asc("Apple")  '返回 65。
复制代码
xor   对两个表达式进行逻辑“异或”运算。

TOP

Asc 函数
返回与字符串的第一个字母对应的 ANSI 字符代码。

Asc(string)
string 参数是任意有效的字符串表达式。如果 string 参数未包含字符,则将发生运行时错误。

说明
下面例子中, Asc 返回每一个字符串首字母的 ANSI 字符代码:

Dim MyNumber
MyNumber = Asc("A")      '返回 65。
MyNumber = Asc("a")      '返回 97。
MyNumber = Asc("Apple")  '返回 65。

注意   AscB 函数和包含字节数据的字符串一起使用。AscB 不是返回第一个字符的字符代码,而是返回首字节。AscW 是为使用 Unicode 字符的 32 位平台提供的。它返回 Unicode (宽型)字符代码,因此可以避免从 ANSI 到 Unicode 的代码转换。

TOP

一个数经过两次 Xor 后和原来一样,即 ch = ch Xor &FFFF Xor $FFFF

TOP

我晕  怎么全是搬运  .....................

TOP

本帖最后由 batman 于 2011-6-3 19:50 编辑

hffff = -1 ,二进制11111111
11000000 xor 11111111 = 00111111(加密)
00111111 xor 11111111 = 11000000(解密)

ps:楼上两位是来贴手册的?
***共同提高***

TOP

hffff = -1 ,二进制11111111
11000000 xor 11111111 = 00111111(加密)
00111111 xor 11111111 = 11000000(解密)

ps:楼上两位是来贴手册的?
batman 发表于 2011-6-3 19:48




&HFFFF二进制是1111 1111 1111 1111

......................................O__O"…

TOP

hffff = -1 ,二进制11111111
11000000 xor 11111111 = 00111111(加密)
00111111 xor 11111111 = 11000000(解密)

ps:楼上两位是来贴手册的?
batman 发表于 2011-6-3 19:48

本来就是查手册就能解决的问题。

TOP

本来就是查手册就能解决的问题。
Demon 发表于 2011-6-3 20:08



大家不用争执啦  
我知道怎么计算啦
我一直追寻那ch值  原来我查错了
“你”  的ascii值是-15133
我直接在电脑的系统工具找的是50403
忘记  汉字是负数没发现自己做错了

TOP

大家不用争执啦  
我知道怎么计算啦
我一直追寻那ch值  原来我查错了
“你”  的ascii值是-15133
我直接在电脑的系统工具找的是50403
忘记  汉字是负数没发现自己做错了
mglouis 发表于 2011-6-3 20:43

这个不叫ASCII,应该是GBK。“你”字的GBK代码点是十六进制的C4E3,即十进制50403,但是Asc函数的返回值是Integer子类型,取值范围是-32,768 到 32,767,50403大于32767,溢出,得到-15133(即50403 - 65536)。

TOP

这个不叫ASCII,应该是GBK。“你”字的GBK代码点是十六进制的C4E3,即十进制50403,但是Asc函数的返回值是Integer子类型,取值范围是-32,768 到 32,767,50403大于32767,溢出,得到-15133(即50403 - 65536)。
Demon 发表于 2011-6-3 22:48


嗯  之前没注意到

TOP

返回列表