数据库字段加密

数据库字段加密

数据库加密这块,发现了一个实操,但是完全看不懂,应该如果解密

相关代码:

declare @p1 int
set @p1=1
exec sp_prepexec @p1 output,N'@P0 nvarchar(4000),@P1 nvarchar(4000),@P2 nvarchar(4000),@P3 nvarchar(4000),@P4 nvarchar(4000)',N'SELECT azc_code,
CONVERT (VARCHAR,DecryptByPassphrase (@P0,azc_status))AS azc_status,
CONVERT (VARCHAR,DecryptByPassphrase (@P1,azc_pstatus))AS azc_pstatus,
CONVERT (VARCHAR(MAX),DecryptByPassphrase (@P2,azc_devsign))AS azc_devsign
FROM app_authorizate_code
WHERE  CONVERT (VARCHAR(MAX),DecryptByPassphrase (@P3,azc_devsign))=@P4;
',N'HmcDat#50qi273881.soft.cn',
N'HmcDat#50qi273881.soft.cn',
N'HmcDat#50qi273881.soft.cn',
N'HmcDat#50qi273881.soft.cn',
N'4D7231FA-A0C8-4BF9-9E9F-B1CF8FE89959'
select @p1

相关代码:

declare @p1 int
set @p1=3
exec sp_prepexec @p1 output,N'@P0 nvarchar(4000),@P1 nvarchar(4000),@P2 nvarchar(4000),@P3 nvarchar(4000),@P4 nvarchar(4000)',N'SELECT azc_code,
CONVERT (VARCHAR,DecryptByPassphrase (@P0,azc_status))AS azc_status,
CONVERT (VARCHAR,DecryptByPassphrase (@P1,azc_pstatus))AS azc_pstatus,
CONVERT (VARCHAR(MAX),DecryptByPassphrase (@P2,azc_devsign))AS azc_devsign
FROM app_authorizate_code
WHERE  CONVERT (VARCHAR(MAX),DecryptByPassphrase (@P3,azc_devsign))=@P4;                                        ',N'HmcDat#50qi273881.soft.cn',N'HmcDat#50qi273881.soft.cn',N'HmcDat#50qi273881.soft.cn',N'HmcDat#50qi273881.soft.cn',N'4D7231FA-A0C8-4BF9-9E9F-B1CF8FE89959'
select @p1

SQL加密函数

ENCRYPTBYPASSPHRASE('12312#$#2sj',@UserName)    # 用于加密
我个人感觉第一个参数应该是密匙,第二个参数是需要加密的字符串
DECRYPTBYPASSPHRASE('12312#$#2sj',@Encrypt)    # 用于解密
我个人感觉第一个参数应该是密匙,第二个参数是需要解密的字符串

但是上门两个代码,@p0是指的密匙吗?什么p0明明只是一个数据类型,算不上是密匙吧,后面跟着一个表的字段名,也不是具体需要解密的字符串?

通过以上代码,所以密匙到底是什么,还是参数我这边理解少了还有隐藏参数?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕凡 2022-03-10 16:33:42

同学,你好!

1、ENCRYPTBYPASSPHRASE('12312#$#2sj',@UserName) 和 DECRYPTBYPASSPHRASE('12312#$#2sj',@Encrypt) ,第一个参数是密钥,第二个参数是需要解密的字符串;

2、@p0是自定义的变量,nvarchar(4000)是p0的数据类型,@p0是密钥,azc_status是要解密的数据;

课程中没有涉及到该知识点的讲解,同学可以搜索相关资料进行学习一下。

祝学习愉快!


  • 提问者 易动互推 #1
    可是并没有看到给p0赋值啊
    2022-03-10 16:35:37
  • 好帮手慕凡 回复 提问者 易动互推 #2

    同学,你好!

    同学发的代码是个片段,ENCRYPTBYPASSPHRASE函数第一个参数是加密密钥,第二个是要加密的数据,课程中没有涉及到该sql server的讲解,同学可以搜索相关资料进行学习一下,祝学习愉快~


    2022-03-10 16:49:17
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师