Je me demandais si quelqu'un connaissait un moyen de crypter de façon déterministe une valeur dans Ruby en utilisant un algorithme de cryptage asymétrique.Cryptage asymétrique déterministe (RSA) avec Ruby
Pour la plupart des cas d'utilisation, il est important de savoir que lorsque vous cryptez 'A', vous récupérez 'A' lorsque vous le décryptez, c'est-à-dire que vous ne vous souciez pas de la valeur cryptée. Vous vous souciez seulement de l'aller-retour complet.
Cependant, pour une application que je développe, j'ai vraiment besoin que la sortie soit déterministe. C'est-à-dire, j'ai besoin de crypter quelque chose avec RSA sans un remplissage variable.
Lorsque je tente de chiffrer une valeur avec OpenSSL::PKey::RSA::NO_PADDING
une erreur est renvoyée:
OpenSSL::PKey::RSAError Exception: data too small for key size
Quelqu'un a une idée sur la façon dont je peux obtenir une valeur chiffrée déterministe en utilisant RSA?
Meilleures salutations,
DBA
Salut. À quel point voulez-vous dire par «sortie pour être déterministe»? Voulez-vous avoir une longueur constante de données cryptées? Quelles sont les entrées? – osgx
Lorsque vous cryptez une valeur (par exemple, 'xpto'), vous obtenez une valeur différente à chaque fois en raison du remplissage. Par exemple: crypt 'xpto' # => 'aaa'. J'ai besoin de ça quand je lance à nouveau la crypt 'xpto' ça retourne aussi 'aaa' et pas 'abc' – DBA
J'ai compris. RSA a tendance à étendre votre message avec un remplissage aléatoire avant le cryptage. Est-ce que votre code fonctionne, si vous désactivez "OpenSSL :: PKey :: RSA :: NO_PADDING"? Pouvez-vous poster le code? – osgx