關(guān)于SQL Server加密與解密的問(wèn)題
一、PassPhrase加密
1.1、概要簡(jiǎn)述
1)對(duì)于不涉及證書(shū)及密鑰的應(yīng)急的數(shù)據(jù)加密,可以直接基于用戶(hù)提供的密碼來(lái)加密和解密數(shù)據(jù)。
2)通行短語(yǔ)(PassPhrase)是允許存在空格的密碼。這個(gè)PassPhrase不會(huì)存儲(chǔ)在數(shù)據(jù)庫(kù)中,因而也就意味著不會(huì)被使用存儲(chǔ)的系統(tǒng)數(shù)據(jù)"破解"。同時(shí),可以使用空格創(chuàng)建一個(gè)長(zhǎng)的、易于記憶的句子來(lái)加密和解密敏感數(shù)據(jù)。
3)PassPhrase支持的數(shù)據(jù)列類(lèi)型有nvarchar、varchar、nchar、char、varbinary、binary。
1.2、加密函數(shù)
CREATE FUNCTION dbo.EncryptPass(@EnPass VARCHAR(32)) RETURNS VARBINARY(MAX) AS BEGIN DECLARE @Result VARBINARY(MAX) SET @Result=EncryptByPassPhrase('HelloWorld',@EnPass) RETURN @Result END
1.3、解密函數(shù)
CREATE FUNCTION dbo.DecryptPass(@DePass VARBINARY(MAX)) RETURNS VARCHAR(32) AS BEGIN DECLARE @Result VARCHAR(32) SET @Result=CONVERT(VARCHAR,DecryptByPassPhrase('HelloWorld',@DePass)) RETURN @Result END
1.4、結(jié)果測(cè)試
SELECT dbo.EncryptPass('測(cè)試字符串') AS RESULT SELECT dbo.DecryptPass(0x0100000045FE8873D07BFB747D33D81D1C1E06CA3EC10D718CF603E395D4493BFBFC5683) AS RESULT SELECT dbo.DecryptPass(dbo.EncryptPass('測(cè)試字符串')) AS RESULT
1.5、執(zhí)行結(jié)果
二、證書(shū)加密
2.1、概要簡(jiǎn)述
1)證書(shū)可以在數(shù)據(jù)庫(kù)中加密和解密數(shù)據(jù)。
2)證書(shū)包含密鑰對(duì)、證書(shū)擁有者的信息、證書(shū)可用的開(kāi)始和結(jié)束過(guò)期日期,同時(shí)還包含公鑰和密鑰,前者用來(lái)加密,后者用來(lái)解密。
3)SQL Server可以生成它自己的證書(shū),也可以從外部文件或程序集載入。證書(shū)比非對(duì)稱(chēng)密鑰更易于移植,可以在數(shù)據(jù)庫(kù)中很方便地重用。
2.2、創(chuàng)建證書(shū)
CREATE CERTIFICATE TestCert ENCRYPTION BY PASSWORD='HelloWorld' WITH SUBJECT='Hello World', START_DATE='2021-01-20', EXPIRY_DATE='2021-12-31'
2.3、加密函數(shù)
CREATE FUNCTION dbo.EncryptCert(@EnPass VARCHAR(32)) RETURNS VARBINARY(MAX) AS BEGIN DECLARE @Result VARBINARY(MAX) SET @Result=EncryptByCert(Cert_ID('TestCert'),@EnPass) RETURN @Result END
2.4、解密函數(shù)
CREATE FUNCTION dbo.DecryptCert(@DePass VARBINARY(MAX)) RETURNS VARCHAR(32) AS BEGIN DECLARE @Result VARCHAR(32) SET @Result=CONVERT(VARCHAR,DECRYPTBYCERT(Cert_ID('TestCert'),@DePass,N'HelloWorld')) RETURN @Result END
2.5、結(jié)果測(cè)試
SELECT dbo.EncryptCert('測(cè)試字符串') AS RESULT SELECT dbo.DecryptCert(0x836021834D8D25E4DAD0CD26767A77A7FFF9CE9BDCA7BDE72E418118DB58DFB8AF6325B7A9D1D6C2D5D43800120A5C5D212BC4A645D10A065A147C5E97B419DAF6DC203598E376AE4A520B45D145F2C2A6BAE23B49AD3EA45BDAAC1FBD78E8402195DDA0842CA5A89942D03C5D7B82F7E8241D8BD698115C78CEBD5AC0066C6C) AS RESULT SELECT dbo.DecryptCert(dbo.EncryptCert('測(cè)試字符串')) AS RESULT
2.6、執(zhí)行結(jié)果
到此這篇關(guān)于關(guān)于SQL Server加密與解密的問(wèn)題的文章就介紹到這了,更多相關(guān)SQL Server加密與解密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MSSQL數(shù)據(jù)加密解密代碼
- SQL Server儲(chǔ)過(guò)程加密和解密原理深入分析
- 實(shí)例講解SQL Server加密功能
- MySQL加密和解密實(shí)例詳解
- MySQL數(shù)據(jù)庫(kù)對(duì)敏感數(shù)據(jù)加密及解密的實(shí)現(xiàn)方式
- MySQL InnoDB表空間加密示例詳解
- sqlserver數(shù)據(jù)庫(kù)加密后無(wú)法使用MDF,LDF,log文件名稱(chēng)被修改的數(shù)據(jù)恢復(fù)
- MySQL中使用MD5加密的實(shí)現(xiàn)
- mysql如何對(duì)已經(jīng)加密的字段進(jìn)行模糊查詢(xún)?cè)斀?/a>
- Sql Server數(shù)據(jù)庫(kù)實(shí)現(xiàn)表中字段的列加密
相關(guān)文章
數(shù)據(jù)轉(zhuǎn)換沖突及轉(zhuǎn)換過(guò)程中大對(duì)象的處理
數(shù)據(jù)轉(zhuǎn)換沖突及轉(zhuǎn)換過(guò)程中大對(duì)象的處理方法,大家可以參考下。2009-07-07利用SQL Server觸發(fā)器實(shí)現(xiàn)表的歷史修改痕跡記錄
在很多應(yīng)用程序開(kāi)發(fā)中,需要記錄某些數(shù)據(jù)表的歷史記錄或修改痕跡,以便日后出現(xiàn)數(shù)據(jù)錯(cuò)誤時(shí)進(jìn)行數(shù)據(jù)排查。這種業(yè)務(wù)需求,我們可以通過(guò)數(shù)據(jù)庫(kù)的觸發(fā)器來(lái)輕松實(shí)現(xiàn)歷史記錄功能2020-02-02編寫(xiě)SQL需要注意的細(xì)節(jié)Checklist總結(jié)
本周技術(shù)研究部(TRD)的一名DBA 對(duì)我們編寫(xiě)SQL時(shí)的一些問(wèn)題,進(jìn)行了匯報(bào)講演,以下是來(lái)自它的腳本,我在它講演的基礎(chǔ)上寫(xiě)出了自己想表述的,以便于大家相互交流學(xué)習(xí)2012-08-08MyBatis SQL xml處理小于號(hào)與大于號(hào)正確的格式
這篇文章主要介紹了MyBatis SQL xml處理小于號(hào)與大于號(hào)正確的格式,需要的朋友可以參考下2018-06-06SqlServer2016模糊匹配的三種方式及效率問(wèn)題簡(jiǎn)析
這篇文章主要介紹了SqlServer2016模糊匹配的三種方式及效率問(wèn)題,結(jié)合實(shí)例形式簡(jiǎn)單對(duì)比分析了SQL Server2016使用like語(yǔ)句、PATINDEX及CHATINDEX三種方式進(jìn)行模糊匹配的相關(guān)使用方法及執(zhí)行效率,需要的朋友可以參考下2018-07-07一個(gè)SQL語(yǔ)句獲得某人參與的帖子及在該帖得分總和
一個(gè)SQL語(yǔ)句獲得某人參與的帖子及在該帖得分總和...2007-04-04