RC4 字符串加密函數(shù)。
#include <string.au3>
_StringEncrypt ( $i_Encrypt, $s_EncryptText, $s_EncryptPassword [, $i_EncryptLevel ] )
參數(shù)
$i_Encrypt | 1 表示加密,0 表示解密。 |
$s_EncryptText | 用以加密/解密的文本。 |
$s_EncryptPassword | 用以加密/解密的密鑰。 |
$i_EncryptLevel | 可選:加密/解密的級(jí)別。默認(rèn)值 = 1 |
返回值
成功: 加密/解密后的字符串。
注意
警告:若指定的加密級(jí)別或加密字符串過大則耗時(shí)將相當(dāng)長(zhǎng)!
相關(guān)
示例
#include <guiconstants.au3>
#include <string.au3>
; 包含 GUI 和 字符串 所需文件
$WinMain = GuiCreate('RC4 加密/解密工具', 400, 400)
; 創(chuàng)建窗口
$EditText = GuiCtrlCreateEdit('',5,5,380,350)
; 創(chuàng)建主編輯框
$InputPass = GuiCtrlCreateInput('',5,360,100,20, 0x21)
; 創(chuàng)建密碼輸入框
$InputLevel = GuiCtrlCreateInput(1, 110, 360, 50, 20, 0x2001)
$UpDownLevel = GUICtrlSetLimit(GuiCtrlCreateUpDown($inputlevel),10,1)
; 在級(jí)別輸入框旁添加上下箭頭控件
$EncryptButton = GuiCtrlCreateButton('加密', 170, 360, 105, 35)
; 加密按鈕
$DecryptButton = GuiCtrlCreateButton('解密', 285, 360, 105, 35)
; 解密按鈕
GUICtrlCreateLabel('密碼', 5, 385)
GuiCtrlCreateLabel('級(jí)別',110,385)
; 全部都只是些簡(jiǎn)單的文本 label
GuiSetState()
; 顯示窗口
Do
$Msg = GuiGetMsg()
If $msg = $EncryptButton Then
GuiSetState(@SW_DISABLE,$WinMain) ; 禁用窗口,以防用戶作出其它更改
$string = GuiCtrlRead($EditText) ; 保存編輯框的內(nèi)容
GUICtrlSetData($EditText,'正在加密/解密,請(qǐng)稍候。') ; 友好的提示消息
GuiCtrlSetData($EditText,_StringEncrypt(1,$string,GuiCtrlRead($InputPass),GuiCtrlRead($InputLevel)))
; 調(diào)用加密函數(shù)。把編輯框的數(shù)據(jù)作為加密字符串使用
; 加密函數(shù)的第一個(gè)參數(shù) 1/0 表明了正在進(jìn)行的是加密/解密
; 加密函數(shù)獲得了我們從編輯框中保存的字符串
; 隨后它將讀取密碼輸入框的數(shù)據(jù)并讀取級(jí)別輸入框的內(nèi)容
GuiSetState(@SW_ENABLE,$WinMain) ; 使窗口重新可用
EndIf
If $msg = $DecryptButton Then
GuiSetState(@SW_DISABLE,$WinMain) ; 禁用窗口,以防用戶作出其它更改
$string = GuiCtrlRead($EditText) ; 保存編輯框的內(nèi)容
GUICtrlSetData($EditText,'正在加密/解密,請(qǐng)稍候。') ; 友好的提示消息
GuiCtrlSetData($EditText,_StringEncrypt(0,$string,GuiCtrlRead($InputPass),GuiCtrlRead($InputLevel)))
; 調(diào)用加密函數(shù)。把編輯框的數(shù)據(jù)作為加密字符串使用
; 加密函數(shù)的第一個(gè)參數(shù) 1/0 表明了正在進(jìn)行的是加密/解密
; 加密函數(shù)獲得了我們從編輯框中保存的字符串
; 隨后它將讀取密碼輸入框的數(shù)據(jù)并讀取級(jí)別輸入框的內(nèi)容
GuiSetState(@SW_ENABLE,$WinMain) ; 使窗口重新可用
EndIf
Until $msg = $GUI_EVENT_CLOSE ; 繼續(xù)執(zhí)行循環(huán),直到窗口被關(guān)閉為止