数学建模社区-数学中国

标题: 利用URL编码进行加密 [源码] [打印本页]

作者: 韩冰    时间: 2004-10-9 14:33
标题: 利用URL编码进行加密 [源码]
作者: Atomic ( ckatom@hotmail.com)
) @! r( P/ w  w# pQQ:5538313
4 l( @: N" P9 F5 K' T) {* f$ a2 K日期: 18/04/2002 + W% H' G: [+ P9 H' j
3 s3 P6 @9 d8 i1 |4 A3 G( _
! g, x, b( }+ J9 B! q6 \- f0 {9 o
刚刚拜读了Stamina的“URL编码及C语言实现”,觉得有必要写一个GUI的转换器,于是我就操起VB来 完成了这个作品.
  r) q: S4 M7 X+ m8 }  v  F% t其实原理很简单,但是我做GUI界面用了些时间,下面是主要的转换部分:
8 _0 d& M; q( n! S
8 X0 C8 o' u* f3 L''encode - 转成16进制符 ) _: d+ K! R! z$ a$ G
% ^: Y: L6 q0 Q, U1 ^; Q8 h' d
For i = 1 To Len(strIN) - I' E  r2 Q9 W0 W  I7 }$ B0 D. n
s = CStr(Hex(Asc(Mid(strIN, i, 1)))) ''是不是太~~~快了~~ 5 ?' g' B6 b& E; A" V: w
If Len(s) = 1 Then s = "0" & s ''解出小于F的值就在前面加 0 4 k) H& y: @% \  O; Q
strOUT = strOUT & "%" & s
1 z+ j3 a+ Q* B3 }: G1 n; J. B2 [Next i - j; }4 y' p. s4 \, Y$ y3 q3 f# y- k
; h1 ]1 l+ R; |, F4 u: h, Y/ w# j7 P
txtOUT.Text = strOUT ''这里就是输出了
5 D1 K8 u  w1 d' E2 f4 [. Z___________________________________________________________ ' R" v7 r4 |" R8 i, _! G& l' H
" u- W% A6 X0 \: A  _* |
''decode - 解码, 比较麻烦点 + C3 E7 \- S9 J
1 e' E# v5 D5 V! u+ [
For i = 1 To Len(strIN) Step 3 '' Step 3 因为格式是 %XX 三位一个字符
5 b! x9 w* N& t' [% xs1 = UCase(Mid(strIN, i + 1, 1)) ''得到第2位的16进制数字
9 M3 m) K4 ^# Fs2 = UCase(Mid(strIN, i + 2, 1)) ''得到第1位的16进制数字 4 w' i- }, Y' g. ?$ Y- F6 Q

4 Q9 a) ~: X$ ISelect Case s1 '' 进制转换 1 m/ U# G4 `3 j0 z$ h! @0 ?
Case "A" To "F"
1 z7 W. Y4 c9 Y! g* r4 En = (10 + 5 - (Asc("F") - Asc(s1))) * 16
2 ^9 l, {% Z% b( S: E' yCase Else
  ^9 I' \4 Z5 D/ U$ ]' B7 F- Ln = Val(s1) * 16
: E5 r. o7 U8 X0 ~4 tEnd Select 9 j$ ?' q3 N# f& `6 r

: ~5 `0 s+ a  ]% w. BSelect Case s2 ' z& D  H3 H0 w4 H1 n. E; k8 k  g; l
Case "A" To "F" * a# X) c# J1 u, N6 J$ Y4 U5 ]
n = n + (10 + 5 - (Asc("F") - Asc(s2))) ! i! d$ K! W/ w0 O
Case Else ) m8 u9 _5 t( P# h( `0 a$ d$ l
n = n + Val(s2) $ i( j* y- G: I( E  s1 f
End Select 0 H% D7 Z: U! g* R
( x& ?8 t, N( r! F" e; l# @1 e" V0 n
s = ChrW$(n) '' 转为字符 7 l, Z! F6 C+ Y( O1 ]
strOUT = strOUT & s
1 V, v2 F2 Y$ H' f* bNext i
; ]7 z: ^% W, A  H3 L3 \  ?4 i& b) ?txtOUT.Text = strOUT ' O; D- q+ }: C" q  v: h+ z1 r
& q2 t9 p; M4 i1 ^  y# Z, R

; U2 r7 t$ L/ s* j/ d! K$ |+ N1 J程序下载: http://apower.uhome.net/download/encoder.zip
. d  r/ |9 w* R- T7 l1 lhttp://members.rogers.com/tdl/encoder.zip.  4 `; t+ I. V) C- U# @2 i0 B
  1. <SCRIPT language=javascript src="../scripts/recommend.js">. @! A! D& }) [) O( [7 \
  2. 8 y% k8 J, W& `2 K
  3. <script>
复制代码





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5