我把密码字段设置为varchar,然后创建密钥,打开密钥,插入数据,可是读取的时候却显示为NULL,请问怎么回事
- SQL code
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '??xxx'CREATE SYMMETRIC KEY dcmy WITH ALGORITHM = DES ENCRYPTION BY PASSWORD = 'xxx??'--打开对称密钥OPEN SYMMETRIC KEY dcmy DECRYPTION BY PASSWORD = 'xxx??'--以加密的方式存放数据INSERT INTO [tb_Teacher] (TeaName,TeaPwd) VALUES ('老师五',EncryptByKey(Key_GUID('dcmy'), '456456'))select * from tb_Teacherselect CONVERT(varchar, DecryptByKey(TeaPwd)) from tb_Teacher
对了,再问下,“PASSWORD = 'xxx??'”这句是什么意思???
------解决方案--------------------
要制定密码,
“PASSWORD = 'xxx??'”--这句就是就是指定密码的,
必须要将xxx??换成对应的密码即可.
还有,SQL版本应该是2005吧?
- SQL code
create table [tb_Teacher](TeaName nvarchar(20),TeaPwd nvarchar(200));GOCREATE SYMMETRIC KEY dcmy WITH ALGORITHM = DES ENCRYPTION BY PASSWORD = '1234567890'--打开对称密钥OPEN SYMMETRIC KEY dcmy DECRYPTION BY PASSWORD = '1234567890'--以加密的方式存放数据INSERT INTO [tb_Teacher] (TeaName,TeaPwd) VALUES ('老师五',EncryptByKey(Key_GUID('dcmy'), '456456'))select * from tb_Teacher/*TeaName TeaPwd-------------------- -----------------老师五 ?菮??劦洼?? ????娺簍?????*/select CONVERT(varchar, DecryptByKey(TeaPwd)) from tb_Teacher/*456456*/