2
我對加密很陌生。我需要保留一個表格(DocNumber)加密的字段。我把這個作爲加密VARBINARY字段設置:檢索使用encryptbypassphrase保存的行
docNumber = ENCRYPTBYPASSPHRASE('password', @docnumber)
當我想用docnumber我查詢表如下:
WHERE docNumber = DECRYPTBYPASSPHRASE('password', @docNumber)
但是它未能恢復符合條件的記錄。然後我觀察到,如果我用相同的密碼和值重複呼叫ENCRYPTBYPASSPHRASE()
,我最終會得到不同的加密值。 我在哪裏犯錯?你通常如何解決這個問題?
我知道我可以試試這個,但這種方法的數據庫索引不使用,效率非常低 – josephj1989
那麼也許你應該考慮varbinary列,並使用HASHBYTES ()與適當的算法(SHA1,MD5等)。使用HASHBYTES,您每次都會得到相同的哈希值。 –