VB技巧—:简单的将保存的数值加密

只是在自己的项目中使用到了,所以在此整理
Private Sub Command1_Click()
 Open "C:\aaa.txt" For Output As #1
   Print #1, Encode(Text1.Text)
   Close #1
End Sub

Private Function Encode(ByVal sCode As String) As String
    Dim I As Integer
    Dim sTemp As String
    Dim sTemp1 As String
    
    sTemp = ""
    For I = 1 To Len(sCode)
        sTemp1 = Hex(Asc(Mid(sCode, I, 1)))
        sTemp = sTemp + sTemp1
    Next
    Encode = sTemp
End Function

Private Function Decode(ByVal sCode As String) As String
    Dim I As Integer
    Dim sTemp As String
    Dim sTemp1 As String
    
    sTemp = ""
    For I = 1 To Len(sCode) / 2
        sTemp1 = Mid(sCode, (I - 1) * 2 + 1, 2)
        sTemp = sTemp + Chr(Int("&H" + sTemp1))
    Next
    Decode = sTemp
End Function

Private Sub Command2_Click()
Dim A As String
Open "C:\aaa.txt" For Input As #1
   Input #1, A
  
   Close #1
  MsgBox Decode(A)
End Sub
解释说明:
For I = 1 To Len(sCode)  :得到字串sCODE的长度
Mid(a,b,c) : 在a字串中,取出第b个后的c个字符
Asc(a)  :将a转化为ASC码   (ASC码为两位)
Hex(a)  :转化为16进制数
Int("&H" + sTemp1)   :将sTemp1转化为16进制,然后转化为10进制

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VB源码--自定义数字&字符串加密工具 --VB源码 加密 解密 字符串 源码 *************以下为窗口及控件代码************ Private Sub Command1_Click() Label3.Caption = cipher(Text1.Text, Text2.Text) Label8.Caption = "加密完成!" End Sub Private Sub Command2_Click() Label4.Caption = Decipher(Text4.Text, Text3.Text) Label9.Caption = "解密完成!" End Sub Private Sub Label3_Click() Text3.Text = Label3.Caption End Sub Private Sub Label3_DblClick() Clipboard.SetText Label3.Caption Label8.Caption = "复制成功!" End Sub Private Sub Label4_DblClick() Clipboard.SetText Label4.Caption Label9.Caption = "复制成功!" End Sub ************以下为模块代码*************** ' Encipher the text using the pasword.加密 Public Function cipher(ByVal password As String, ByVal from_text As String) Const MIN_ASC = 32 ' Space. Const MAX_ASC = 126 ' ~. Const NUM_ASC = MAX_ASC - MIN_ASC + 1 Dim offset As Long Dim str_len As Integer Dim i As Integer Dim ch As Integer Dim to_text As String ' Initialize the random number generator. offset = NumericPassword(password) Rnd -1 Randomize offset ' Encipher the string. str_len = Len(from_text) For i = 1 To str_len ch = Asc(Mid$(from_text, i, 1)) If ch >= MIN_ASC And ch <= MAX_ASC Then ch = ch - MIN_ASC offset = Int((NUM_ASC + 1) * Rnd) ch = ((ch + offset) Mod NUM_ASC) ch = ch + MIN_ASC to_text = to_text & Chr$(ch) End If Next i cipher = to_text End Function ' Encipher the text using the pasword.解密 Public Function Decipher(ByVal password As String, ByVal from_text As String) Const MIN_ASC = 32 ' Space. Const MAX_ASC = 126 ' ~. Const NUM_ASC = MAX_ASC - MIN_ASC + 1 Dim offset As Long Dim str_len As Integer Dim i As Integer Dim ch As Integer Dim to_text As String ' Initialize the random number generator. offset = NumericPassword(password) Rnd -1 Randomize offset ' Encipher the string. str_len = Len(from_text) For i = 1 To str_len ***************** 省略部分代码(内详) ***************** If ch < 0 Then ch = ch + NUM_ASC ch = ch + MIN_ASC to_text = to_text & Chr$(ch) End If Next i Decipher = to_text End Function ' Translate a password into an offset value. Private Function NumericPassword(ByVal password As String) As Long Dim value As Long Dim ch As Long Dim shift1 As Long Dim shift2 As Long Dim i As Integer Dim str_len As Integer str_len = Len(password) For i = 1 To str_len ' Add the next letter. ch = Asc(Mid$(password, i, 1)) ***************** 省略部分代码(内详) ***************** Next i NumericPassword = value End Function
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值