J'ai une exigence SQL Server assez simple où j'ai une colonne de type int
et je veux crypter cette colonne étant donné que la fonction qui sera utilisée pour crypter la colonne devrait générer la même valeur chaque fois qu'elle est appelée.
Le context
Mes essais
ENCRYPTBYKEY
avec l'authentificateur et sans authentificateur mais chaque fois que j'appelle la fonction, il génère une valeur différente qui pourrait être bénéfique dans certains scénarios mais le mien n'en fait pas partie 🙂 ENCRYPTBYASYMKEY
et le même comportement est apparu, ce qui est une sortie différente à chaque appel Ma question est, quelles sont les solutions possibles pour atteindre mes exigences count tenu que la fonction sera utilisée pour crypter des tables avec des millions d'loggings.
Quelles sont les solutions possibles pour atteindre mes exigences
Il n'y en a pas.
TLDR;
Le encryption moderne doit satisfaire plusieurs propriétés, une de chaque est la security sémantique . La security sémantique en termes simples signifie que si vous avez des messages cryptés, vous ne pouvez pas get d'informations supplémentaires sur le message en text brut. Vos exigences, cependant, contredisent directement cela, car en ayant access à suffisamment de messages chiffrés, on peut dériver la signification du text brut. C'est ainsi que la machine allemande Enigma a été piratée lors de la 2 ème guerre mondiale (ils ont réutilisé la key, alors que vous voulez la réparer, le résultat est le même – le text brut peut être révélé).
Pour ce faire, les vectors d'initialisation ont été inventés et doivent être utilisés.
Que feras-tu? Eh bien, il y a deux options vraiment:
Vous devrez écrire votre propre fonctionnalité de chiffrement pour ce faire, pourquoi voudriez-vous le faire, imo pourrait être un risque de security