Sql server 2008 r2 为什么这些产生的对称加密值不同?

Sql server 2008 r2 为什么这些产生的对称加密值不同?,sql-server-2008-r2,Sql Server 2008 R2,我用的是这样的东西: OPEN SYMMETRIC KEY SSNKey DECRYPTION BY CERTIFICATE SSNCert; UPDATE Customers SET SSNEncrypted = EncryptByKey(Key_GUID('SSNKey'), 'DecryptedSSN') 其中SSNEncrypted是一个varbinary列。我注意到每次的数值都不一样。为什么会这样?我能做些什么来获得一致的加密值,以便在不同的表中比较它们?

我用的是这样的东西:

OPEN SYMMETRIC KEY SSNKey
    DECRYPTION BY CERTIFICATE SSNCert;
UPDATE 
    Customers
SET 
    SSNEncrypted = EncryptByKey(Key_GUID('SSNKey'), 'DecryptedSSN')
其中SSNEncrypted是一个varbinary列。我注意到每次的数值都不一样。为什么会这样?我能做些什么来获得一致的加密值,以便在不同的表中比较它们?

这是设计的

EncryptByKey函数为。 但是如果你解密不同的值,你总是得到原始的解密值

看看MSDN上的博客