導航:首頁 > 文檔加密 > sql對列加密

sql對列加密

發布時間:2022-07-16 03:39:09

『壹』 SQL數據文件怎麼加密

首先要說明不能限制 「誰」,只能限制部分人

其次是加密數據肯定要降低效率

一般情況你數據表中數據不用全部加密,某些關鍵欄位加密就行了

但是你這個只能用可逆轉加密,而且加密後 查詢檢索會麻煩些

不能直接復制,使用 Blob 欄位就類型就行了

要加密簡單點用 Base64編碼好了,也不能直接復制,肉眼看不出來,拿走也不能直接用

其它的加密方式 效果好些,但效率就低了。

『貳』 mysql如何通過sql查詢將列值全部md5加密

一般安全一點的做法是 1給user 表加一個欄位PMD5;
2 UPDATE USER SET pmd5=md5(password) //用MD5值來更新;
3 刪除原來的password欄位;
4 pmd5 欄位改名為password欄位;
完成.

『叄』 請問SQL怎麼對數據進行加密

--以下代碼包括創建密鑰,加密,解密和刪除密鑰
/*
1.利用對稱密鑰
搭配EncryptByKey進行數據加密
使用DecryptByKey函數進行解密
這種方式比較適合大數據量
*/
='XIAOMA'
='ZXCCERTIFICATE',EXPIRY_DATE='2015/01/01'
CREATESYMMETRICKEYSYM_TOMWITHALGORITHM=
OPENSYMMETRICKEYSYM_
SELECTCONVERT(NVARCHAR(10),Decryptbykey((Encryptbykey(Key_guid('SYM_TOM'),N'TOM3'))))
CLOSESYMMETRICKEYSYM_TOM
DROPSYMMETRICKEYSYM_TOM
DROPCERTIFICATETOMCERT;
DROPMASTERKEY;
--或--
=AES_256ENCRYPTIONBYPASSWORD='ZXC123456'
='ZXC123456'
SELECTCONVERT(VARCHAR(10),Decryptbykey(Encryptbykey(Key_guid('ZXC'),'YHDH_C')))
CLOSESYMMETRICKEYZXC;
DROPSYMMETRICKEYZXC;
/*
2.利用非對稱密鑰
搭配EncryptByAsymKey進行數據加密
使用DecryptByAsymKey函數進行解密
用於更高安全級別的加解密數據
*/
='XIAOMA'
=RSA_2048ENCRYPTIONBYPASSWORD='ZXC123456'
(DECRYPTIONBYPASSWORD='ZXC123456')
SELECTCONVERT(VARCHAR(100),Decryptbyasymkey(Asymkey_id('ABC'),Encryptbyasymkey(Asymkey_id('ABC'),'ZXC123456')))
DROPASYMMETRICKEYABC;
DROPMASTERKEY
/*
3.利用憑證的方式
搭配EncryptByCert進行加密
DecryptByCert函數進行解密
比較類似非對稱密鑰
*/
='XIAOMA'
='ZXCCERTIFICATE',EXPIRY_DATE='2015/01/01'
SELECTCONVERT(VARCHAR(20),Decryptbycert(Cert_id('ZXC'),Encryptbycert(Cert_id('ZXC'),'123456')))
DROPCERTIFICATEZXC;
DROPMASTERKEY
--或--
='Mary5',
SECRET='123456';
ALTERLOGINUser1
ADDCREDENTIALAlterEgo
DropCREDENTIALAlterEgo
DROPCREDENTIALAlterEgo
/*
4.利用密碼短語方式
搭配EncryptBypassPhrase進行加密
使用DecryptByPassPhrase函數來解密
比較適合一般的數據加解密
*/
SELECTCONVERT(VARCHAR(100),Decryptbypassphrase('xiaoma',Encryptbypassphrase('xiaoma','123456')))

『肆』 如何在SQL Server資料庫中加密數據

熱心網友
在SQl2005下自帶的函數hashbytes()
,此函數是微軟在SQL
SERVER
2005中提供的,可以用來計算一個字元串的
MD5

SHA1
值,使用方法如下:
--獲取123456的MD5加密串
select
hashbytes('MD5',
'123456')
;
--獲取123456的SHA1加密串
select
hashbytes('SHA1',
'123456')
;有了這個函數可以在sqlserver中為字元串進行加密,但是hashbytes()
函數的返回結果是
varbinary類型,(以
0x
開頭
16
進制形式的二進制數據)通常情況下,我們需要的都是字元串型的數據,很多人首先想到的可能就是用
CAST

Convert
函數將varbinary
轉換為
varchar,但這樣轉換後的結果會是亂碼,正確轉換
varbinary
可變長度二進制型數據到
16
進制字元串應該使用系統內置函數
sys.fn_varbintohexstr()(只在sqlserver2005下有),如下所示:select
sys.fn_varbintohexstr(hashbytes('MD5',
'123456'))
然後就可以截取需要的部分select
lower(right(sys.fn_varbintohexstr(hashbytes('MD5','123456')),32))為md5加密串。

『伍』 sql資料庫怎麼加密

SQL Server中的加密簡介
在SQL Server2000和以前的版本,是不支持加密的。所有的加密操作都需要在程序中完成。這導致一個問題,資料庫中加密的數據僅僅是對某一特定程序有意義,而另外的程序如果沒有對應的解密演算法,則數據變得毫無意義。

到了SQL Server2005,引入了列級加密。使得加密可以對特定列執行,這個過程涉及4對加密和解密的內置函數

SQL Server 2008時代,則引入的了透明數據加密(TDE),所謂的透明數據加密,就是加密在資料庫中進行,但從程序的角度來看就好像沒有加密一樣,和列級加密不同的是,TDE加密的級別是整個資料庫。使用TDE加密的資料庫文件或備份在另一個沒有證書的實例上是不能附加或恢復的。

『陸』 sql資料庫中欄位如何加密

你將你的數據先加密好了。再存儲到資料庫。讀取的時候,解密了再顯示就可以了

『柒』 SQL如何加密

對MSSQL的用戶信息有興趣的,可能會發現master.dbo.sysxlogins裡面存放著用戶的口令,可是呢,password欄位如果不是null就是一堆看不懂的binary,這個口令是怎麼加密的呢?
其實只要仔細看看master.dbo.sp_addlogin就知道了,MSSQL的sp都可以看到代碼,真是不錯。
讓我們來看看它是怎麼做的,注意這一行select @passwd = pwdencrypt(@passwd),這個時後@passwd就被加密了,讓我們也來試一下
DECLARE @ClearPWD varchar(255)
DECLARE @EncryptedPWD varbinary(255)
SELECT @ClearPWD = 'test'
SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD))
SELECT @EncryptedPWD
看上去不錯,確實被加密了,可是我怎麼還原呢?

呵呵,這就沒戲了,口令加密都是單向的,用加密後的密文來比較就可以了。
繼續看看其它用戶相關的sp,可以發現master.dbo.sp_password裡面有口令比較的內容。
pwdcompare(@old, password, (CASE WHEN xstatus&2048 = 2048 THEN 1 ELSE 0 END))
不用去理會xstatus,這是一個狀態掩碼,一般我們用的時候就直接用0就可以了
DECLARE @ClearPWD varchar(255)
DECLARE @EncryptedPWD varbinary(255)
SELECT @ClearPWD = 'test'
SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD))
SELECT pwdcompare(@ClearPWD, @EncryptedPWD, 0)
SELECT pwdcompare('ErrorPassword', @EncryptedPWD, 0)
這樣我們就可以使用這兩個函數來加密自己的密碼了

『捌』 怎麼實現對SQL Server資料庫的欄位進行加密和解密

將那個欄位設為主鍵
------解決方案--------------------------------------------------------
要不然
你只能在邏輯上做判斷、先查詢數據是否有當前的符號、如果有
就另填。沒有的話,就插入
------解決方案--------------------------------------------------------
------解決方案--------------------------------------------------------
要是這個欄位不是外鍵的話,可以設成主鍵,否則,可以由資料庫的標識欄位做主鍵,給這一列
加上唯一約束
------解決方案--------------------------------------------------------
主鍵或者unique
約束(這個oracle
有,不知sqlserver
有沒有)。
這個好像不行吧。
------解決方案--------------------------------------------------------
設主鍵。用sequence
自增。設置主鍵
然後也可以寫觸發器做判斷修改

『玖』 SQL Server資料庫如何正確加密

當數據被存儲時候被加密,它們被使用的時候就會自動加密。在其他的情況下,你可以選擇數據是否要被加密。SQL Server資料庫可以加密下列這些組件:密碼存儲過程,視圖,觸發器,用戶自定義函數,默認值,和規則。
在伺服器和用戶之間傳輸的數據密碼加密SQL Server自動將你分配給登陸和應用角色的密碼加密。盡管當你可以從主資料庫中直接察看系統表格而不需要密碼。你不能給對這種情況作出任何修改,事實上,你根本不能破壞它。
定義加密在有些時候,如果對對象進行加密是防止將一些信息分享給他人。例如,一個存儲進程可能包含所有者的商業信息,但是這個信息不能和讓其他的人看到,即使他們公開的系統表格並可以看到對象的定義。這就是為什麼SQL Server資料庫允許你在創建一個對象的時候進行加密。為了加密一個存儲進程,使用下面形式的CREAT PROCEDURE 語句:
CREATEPROCEDUREprocerename[;number]
[@parameterdatatype
[VARYING][=defaultvalue][OUTPUT]]
[,]
[WITHRECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION]
我們關心的僅僅是可選的WITH參數。你可以詳細說明ARECOMPILE或者ENCRYPTION,或者你可以同時說明它們。ENCRYPTION關鍵字保護SQL Server資料庫它不被公開在進程中。結果,如果ENCRYPTION在激活的時候系統存儲進程sp_helptext就會被忽視,這個存儲進程將被存儲在用戶創建進程的文本中。
如果你不想要加密,你可以使用ALTER PROCEDURE,忽略WITH ENCRYPTION子句來重新創建一個進程。
為了能夠使用加密。用戶和伺服器都應該使用TCP/IP NetworkLibraries用來連接。運行適當的Network Utility和檢查Force protocol encryption,看下錶,用戶和伺服器之間的連接將不會被加密。
加密也不能完全自由。當連接確定後源碼天空
,要繼續其他的構造,並且用戶和伺服器必須運行代碼來解釋加密和解釋的包裹。這里將需要一些開銷並且當在編譯碼的時候會使進程慢下來。

『拾』 在SQL裡面的數據是怎麼加密的

我認為SQL里的數據是沒有辦法加密的,但是你可以對庫或表等可以加密。
單單對一個數據加密
我還未發現過
如果真的可以加密
那麼也沒有太大意義

閱讀全文

與sql對列加密相關的資料

熱點內容
微信位置可以加密嗎 瀏覽:466
演算法蠻力法 瀏覽:436
隨機排練命令 瀏覽:147
python多進程並發 瀏覽:41
安卓軟體安裝如何躲避安全檢測 瀏覽:647
奇幻潮翡翠台源碼百度雲盤 瀏覽:187
什麼軟體可以免費pdf轉word 瀏覽:15
php正則表達式大全 瀏覽:394
androidntp時間 瀏覽:299
輪機長命令簿英文 瀏覽:148
oppo鈴聲設置被加密怎麼處理 瀏覽:548
粵苗app圖形驗證碼怎麼填 瀏覽:899
管家婆架設雲伺服器 瀏覽:254
php的登錄界面代碼 瀏覽:997
php開發客戶端 瀏覽:998
theisle測試服怎麼搜伺服器 瀏覽:447
廣播PDF 瀏覽:218
單片機編程300例匯編百度 瀏覽:35
騰訊雲連接不上伺服器 瀏覽:223
不能用來表示演算法的是 瀏覽:861