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