⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 加密解密字符串的例子,使用vb源码编写。与大家共勉。
💻 FRM
字号:
VERSION 4.00
Begin VB.Form Form1 
   Caption         =   "Form1"
   ClientHeight    =   2655
   ClientLeft      =   1140
   ClientTop       =   1515
   ClientWidth     =   8775
   Height          =   3060
   Left            =   1080
   LinkTopic       =   "Form1"
   ScaleHeight     =   2655
   ScaleWidth      =   8775
   Top             =   1170
   Width           =   8895
   Begin VB.CommandButton cmdDecipher 
      Caption         =   "<<"
      Enabled         =   0   'False
      Height          =   495
      Left            =   3840
      TabIndex        =   7
      Top             =   1800
      Width           =   1095
   End
   Begin VB.CommandButton cmdCipher 
      Caption         =   ">>"
      Enabled         =   0   'False
      Height          =   495
      Left            =   3840
      TabIndex        =   6
      Top             =   960
      Width           =   1095
   End
   Begin VB.TextBox txtPassword 
      Height          =   285
      Left            =   3480
      TabIndex        =   5
      Top             =   360
      Width           =   1815
   End
   Begin VB.TextBox txtCipher 
      Height          =   2295
      Left            =   5400
      MultiLine       =   -1  'True
      TabIndex        =   2
      Top             =   0
      Width           =   3375
   End
   Begin VB.TextBox txtPlain 
      Height          =   2295
      Left            =   0
      MultiLine       =   -1  'True
      TabIndex        =   0
      Text            =   "Form1.frx":0000
      Top             =   0
      Width           =   3375
   End
   Begin VB.Label Label1 
      Alignment       =   2  'Center
      Caption         =   "Password"
      Height          =   255
      Index           =   2
      Left            =   3480
      TabIndex        =   4
      Top             =   120
      Width           =   1815
   End
   Begin VB.Label Label1 
      Alignment       =   2  'Center
      Caption         =   "Ciphertext"
      Height          =   255
      Index           =   1
      Left            =   5400
      TabIndex        =   3
      Top             =   2400
      Width           =   3375
   End
   Begin VB.Label Label1 
      Alignment       =   2  'Center
      Caption         =   "Plaintext"
      Height          =   255
      Index           =   0
      Left            =   0
      TabIndex        =   1
      Top             =   2400
      Width           =   3375
   End
End
Attribute VB_Name = "Form1"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
Option Explicit

' Encipher the text using the pasword.
Private Sub Cipher(ByVal password As String, ByVal from_text As String, to_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

    ' 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
End Sub
' Encipher the text using the pasword.
Private Sub Decipher(ByVal password As String, ByVal from_text As String, to_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

    ' 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)
            If ch < 0 Then ch = ch + NUM_ASC
            ch = ch + MIN_ASC
            to_text = to_text & Chr$(ch)
        End If
    Next i
End Sub


' 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))
        value = value Xor (ch * 2 ^ shift1)
        value = value Xor (ch * 2 ^ shift2)

        ' Change the shift offsets.
        shift1 = (shift1 + 7) Mod 19
        shift2 = (shift2 + 13) Mod 23
    Next i
    NumericPassword = value
End Function

Private Sub cmdCipher_Click()
Dim cipher_text As String

    Cipher txtPassword.Text, txtPlain.Text, cipher_text
    txtCipher.Text = cipher_text
End Sub

Private Sub cmdDecipher_Click()
Dim plain_text As String

    Decipher txtPassword.Text, txtCipher.Text, plain_text
    txtPlain.Text = plain_text
End Sub


Private Sub txtPassword_Change()
    If Len(txtPassword.Text) > 0 Then
        cmdCipher.Enabled = True
        cmdDecipher.Enabled = True
    Else
        cmdCipher.Enabled = False
        cmdDecipher.Enabled = False
    End If
End Sub


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -