對字串進行加密解密

2021-09-07 08:28:38 字數 1321 閱讀 6330

create view v_rand

asselect c=unicode(cast(round(rand()*255,0) as tinyint))go

create function f_jmstr

(@str varchar(8000),

@type bit

)returns varchar(8000)

/**引數說明

*str:要加密的字串或已經加密後的字元

*type:操作型別--0加密--解密

*返回值說明

*當操作型別為加密時(type--0):返回為加密後的str,即存放於資料庫中的字串

*當操作型別為解密時(type--1):返回為實際字串,即加密字串解密後的原來字串

*/as

begin

declare @re varchar(8000)--返回值

declare @c int--加密字元

declare @i int

/**加密方法為原字元異或乙個隨機ascii字元

*/if @type=0--加密

begin

select @c=c,@re='',@i=len(@str) from v_rand

while @i>0

select @re=nchar(unicode(substring(@str,@i,1))^@c^@i)+@re

,@i=@i-1

set @re=@re+nchar(@c)

endelse--解密

begin

select @i=len(@str)-1,@c=unicode(substring(@str,@i+1,1)),@re=''

while @i>0

select @re=nchar(unicode(substring(@str,@i,1))^@c^@i)+@re ,@i=@i-1

endreturn(@re)

endgo

--測試

declare @tempstr varchar(20)

set @tempstr='  1 2   3aa'

select '原始值:',@tempstr

select '加密後:',dbo.f_jmstr(@tempstr,0)

select '解密後:',dbo.f_jmstr(dbo.f_jmstr(@tempstr,0),1)

--輸出結果

/*原始值:      1 2   3aa

加密後:    __0'15`'17__°{1

解密後:      1 2   3aa

*/

怎樣對字串進行加密 解密

譯者的話 該文介紹了一種直接呼叫 cryptoapi 函式對字串進行加密和解密的用法,非常簡單 實用。其中,有作者所封裝的乙個加密 解密類,是可以直接復用的原始碼,我想是能夠解決我們的一些實際問題的。而且,將初始化函式封裝在建構函式中,也顯得比較巧妙,對於初學者不失為一篇好的教材。1 初始化 cry...

基於字元裝置對字串進行加密解密

編寫利用字元裝置實現對字串加密解密的程式。加密 將大小寫字母迴圈加 解密 將大小寫字母迴圈減 例如 china 加密成 glmre 這是驅動 實現乙個主裝置號,兩個次裝置。乙個次裝置號加密,乙個次裝置號解密。相應的測試程式是 test1.c include include include inclu...

字串進行加密與解密。

設計應用程式時,為了防止一些敏感資訊的洩露,通常需要對這些資訊進行加密。以使用者的登入密碼為例,如果密碼以明文的形式儲存在資料表中,很容易就會被人發現 相反,如果密碼以密文的形式儲存,即使別人從資料表中發現了密碼,也是加密之後的密碼,根本不能使用。通過對密碼進行加密,能夠極大地提高系統的保密性。下面...