資料庫如何實現欄位加密

時間 2021-10-14 22:23:54

1樓:violet思念

create view v_rand as select 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加密--解密 *返回

create view v_rand

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

gocreate 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 dbo.f_jmstr(dbo.f_jmstr(@tempstr,0),1)

輸出結果

1 2 3aa

2樓:小炫馬紮

插入加密資料:

1、insert into userdata(username,pasword,encryptedpassword)

2、values ('smith','htims',aes_encrypt('htims','key'))

上面的插入語句有三個欄位,「使用者名稱」、「密碼」和「加密的密碼」。

aes_encrypt()函式需要一個「key」來協助加密,同樣,解密也需要它。

從表中查詢加密資料

1、select username,pasword,aes_decrypt(encryptedpassword,'key')

2、from userdata.

3樓:匿名使用者

資料庫沒有這種功能,只能通過**儲存的時候進行md5加密

4樓:

比如註冊,使用者註冊時候,對密碼進行md5,儲存到資料庫,在使用者登入時,輸入的密碼進行md5和資料庫中儲存的值進行比較即可。

5樓:匿名使用者

oracle 資料庫有 dbms_crypto

如何在mysql資料庫中加入加密演算法,使得資料庫能夠對資料庫中的資料進行加密。 30

6樓:糖糖寳寳

插入加密資料:copy

1、insert into userdata(username,pasword,encryptedpassword)

2、values ('smith','htims',aes_encrypt('htims','key'))

上面的**ai入語句有三個欄位du,「使用者名稱」、「密zhi碼」dao和「加密的密碼」。

aes_encrypt()函式需要一個「key」來協助加密,同樣,解密也需要它。

從表中查詢加密資料

1、select username,pasword,aes_decrypt(encryptedpassword,'key')

2、from userdata.

7樓:匿名使用者

資料庫一般不會有這種加密處理.資料庫主要職責是查詢和儲存資料

資料加密一般都是通過外圍加密服務處理過後再存到資料庫,職責要區分開,然後再考慮怎麼做

8樓:

沒有用過mysql加密,但一般都是用服務端語言把資料加密後存入資料庫中,比如,在php裡用md5函式把使用者的密碼加密之後存入資料中,一般都 是這麼解決的。

oracle資料庫資料匯入同使用者,如何實現覆蓋

4終 1 重複匯入已存在的資料庫,有以下兩種匯入方法imp和impdp。2 imp匯入的時候 如果已經存在此表,會告訴你無法建立此表,因為表已經存在。同時使用引數 full y ignore y 那就是全部匯入,把dmp裡的所有資料插入到表裡面。3 資料備份,使用命令 exp user user f...

oracle資料庫表增加欄位,oracle資料庫中怎樣對多個表增加欄位

會,比如 說增加了欄位,你 insert into table values 這樣就出錯了,因為你是全欄位插入。但是其實你沒有values。alter table table name add column name column type column name column type 問題很嚴重...

sql資料庫共享問題,怎麼實現資料庫的共享

sql server預設埠1433,但是如果沒有安裝sqlsvr 的servicepack 3以上,通過這個埠是出現連線不上的。可以在cmd視窗下netstat a看看這個埠是否開啟。如何實現區域網內sql資料庫共享 5 如果你的軟體所記錄的載體是拿過來就能用的那種,可以考慮共享記錄所在的資料夾,然...