主题:VFP字符串加密问题
yjgzs
[专家分:10] 发布于 2008-12-28 13:15:00
我现在有一用字母和数字组成的字符串如SS365FFW6RH6G8,想通过一定的加密算法,把它变成另外一个还是用字母和数字组成的字符串,注意,转换后它还是一个用字母和数字组成的字符串,该怎么办。
我曾做过许多尝试,但转换后却不全是字母和数字,还有一些乱码,请高手指点怎样实现我的上述问题。
回复列表 (共3个回复)
沙发
lidong883545 [专家分:20] 发布于 2008-12-31 10:58:00
数字的ASC码为48-57(十进制),大写字母ASC码为65-90,小写字母ASC码为97-122,汉字ASC码为45120-55110,首先用substr()获取单个字符,再用asc("待加密的单个字符")检测待加密的字符是数字还是字母,再分段加密计算,但加密计算后的结果必须在这四段数值内,最后用chr(数值)还原。
如果没有汉字,比较简单,有汉字的话,在获取单个字符时要注意汉字是双字节的,用asc(substr())判断值是否大于170,如果大于170则截取2个字符。
板凳
0901chang [专家分:10660] 发布于 2008-12-31 12:06:00
1楼,你试一试
? chr(176)+chr(161)
? chr(170)+chr(128)
? chr(176)+chr(128)
既便是最老的汉字字符集,汉字和全角符号也在161区-254区。注意,汉字的底层代码在理解《区位码》之后,其截取、运算就没有问题了。详细的汉字编码,去查看国家标准。
做工程时,当你用到通用的项目时,若搞不清楚,可以考虑去查询是否有国家标准。比如说:行政区划、身份证、护照照片 ...
3 楼
foxdb [专家分:1830] 发布于 2008-12-31 14:43:00
这个问题我不是早已回帖答复了吗请看( [url=http://bbs.pfan.cn/post-260951.html]http://bbs.pfan.cn/post-260951.html[/url] )
如要加密的字符串是:SS365FFW6RH6G8
加密后的字符串就是: HH634UUD3IS3T1
我来回复