Comment crypter / décrypter des données à l'aide de RSA OAEP SHA-256 dans Crypto ++

ImTheSquid

Comment puis-je crypter mes données de chaîne avec un remplissage SHA-256 au lieu du remplissage SHA-1 par défaut dans Crypto ++? Je n'ai trouvé aucun moyen de changer l'algorithme de remplissage utilisé par mes fonctions de chiffrement / déchiffrement. J'ai entendu parler de certaines bibliothèques ayant des schémas de remplissage codés en dur, mais j'espère qu'il existe un moyen de modifier celui utilisé par Crypto ++.

Voici ma méthode de cryptage:

string GUIMain::encryptData(const string data) {
    CryptoPP::RSAES_OAEP_SHA_Encryptor e(*serverPublic);
    string cipher;
    CryptoPP::StringSource ss1(data, true, new CryptoPP::PK_EncryptorFilter(*rng, e, new CryptoPP::StringSink(cipher)));
    return cipher;
}

Voici ma méthode de décryptage:

string GUIMain::decryptData(const string cipher) {
    CryptoPP::RSAES_OAEP_SHA_Decryptor d(*privateKey);
    string recovered;
    CryptoPP::StringSource ss2(cipher, true, new CryptoPP::PK_DecryptorFilter(*rng, d, new CryptoPP::StringSink(recovered)));
    return recovered;
}

Les clés ( *serverPublicet *privateKey) sont des types d'objets RSA::PublicKeyet RSA::PrivateKeyrespectivement. *rngest un AutoSeededRandomPoolobjet.

Puis-je ajouter / modifier ces méthodes pour qu'elles fonctionnent correctement? Je suis nouveau en C ++, veuillez donc expliquer les solutions si possible.

jww

Comment puis-je crypter mes données de chaîne avec un remplissage SHA-256 au lieu du remplissage SHA-1 par défaut dans Crypto ++?

RSAES_OAEP_SHA_Encryptoret RSAES_OAEP_SHA_Decryptorsont des typedefs:

$ grep RSAES_OAEP_SHA_Encryptor *.h
rsa.h:DOCUMENTED_TYPEDEF(RSAES<OAEP<SHA1> >::Encryptor, RSAES_OAEP_SHA_Encryptor);

$ grep RSAES_OAEP_SHA_Decryptor *.h
rsa.h:DOCUMENTED_TYPEDEF(RSAES<OAEP<SHA1> >::Decryptor, RSAES_OAEP_SHA_Decryptor);

Vous pouvez utiliser les éléments suivants à la place:

 RSAES<OAEP<SHA256> >

Ainsi, votre crypteur et votre décrypteur seraient:

 RSAES<OAEP<SHA256> >::Encryptor
 RSAES<OAEP<SHA256> >::Decryptor

Gardez l'espace supplémentaire après le >pour le modèle. Il est nécessaire sur les anciennes versions du langage C ++. Sinon, le compilateur voit >>et pense qu'il fait partie d'un opérateur d'extraction.


Il existe plusieurs typedefs comme ceux que vous utilisez:

$ grep RSAES *.h
...
rsa.h:struct RSAES : public TF_ES<RSA, STANDARD>
rsa.h:/// \brief \ref RSAES<STANDARD> "RSAES<PKCS1v15>::Decryptor" typedef
rsa.h:DOCUMENTED_TYPEDEF(RSAES<PKCS1v15>::Decryptor, RSAES_PKCS1v15_Decryptor);
rsa.h:/// \brief \ref RSAES<STANDARD> "RSAES<PKCS1v15>::Encryptor" typedef
rsa.h:DOCUMENTED_TYPEDEF(RSAES<PKCS1v15>::Encryptor, RSAES_PKCS1v15_Encryptor);
rsa.h:/// \brief \ref RSAES<STANDARD> "RSAES<OAEP<SHA1>>::Decryptor" typedef
rsa.h:DOCUMENTED_TYPEDEF(RSAES<OAEP<SHA1> >::Decryptor, RSAES_OAEP_SHA_Decryptor);
rsa.h:/// \brief \ref RSAES<STANDARD> "RSAES<OAEP<SHA1>>::Encryptor" typedef
rsa.h:DOCUMENTED_TYPEDEF(RSAES<OAEP<SHA1> >::Encryptor, RSAES_OAEP_SHA_Encryptor);

DOCUMENTED_TYPEDEFest une macro dans config_ns.h. La macro permet de générer une meilleure documentation lorsqu'elle make docsest exécutée.

Une compilation régulière utilise ce qui suit.

typedef RSAES<OAEP<SHA1> >::Encryptor RSAES_OAEP_SHA_Encryptor;

Une génération de documentation utilise les éléments suivants. L'héritage fonctionne mieux lors de la création de la documentation.

struct RSAES_OAEP_SHA_Encryptor : RSAES<OAEP<SHA1> >::Encryptor
{
};

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Comment crypter / décrypter à l'aide de RSA / OAEP si nous n'avons que la clé publique

Comment crypter les données dans node.js à l'aide de node-rsa et décrypter les données cryptées dans Android ?

Comment décrypter RSA OAEP avec SHA256 en utilisant openssl sur PHP

J'ai crypté des données dans node.js à l'aide du module crypto, comment puis-je décrypter dans react.js à l'aide de crypto-js

Crypter et décrypter à l'aide de PyCrypto AES 256

Crypter et décrypter à l'aide de PyCrypto AES 256

Comment décrypter correctement les données en python à l'aide de RSA Private Key BLOB à partir de Windows

Comment crypter et décrypter à l'aide de Camellia 128 bits dans le code JAVA Android?

NodeJS Comment crypter des données (algorithme AES) à l'aide de crypto-js ou d'un package crypto encodé en UTF8 à l'aide de la taille de clé personnalisée, iv, mode et remplissage

Comment crypter des données à l'aide d'une connexion BLE à l'aide de Bluez5.50

Crypter et décrypter avec RSA OAEP

Tirer pour crypter/décrypter des données à l'aide de OpenSSL_encrypt/OpenSSL_decrypt de PHP

Crypter les données à l'aide de CryptoJS et les décrypter à l'aide d'AESCipherService

Comment crypter des données avec sha256 avec hash_hmac dans Rails comme dans cette fonction php

Comment crypter des données à l'aide de la bibliothèque Botan et d'une suite de chiffrement spécifique?

Comment décrypter une chaîne cryptée pbkdf2_hmac et SHA256 stockée dans la base de données ?

Crypter / Décrypter la base de données MySQL à l'aide de PHPmyAdmin

Impossible de décrypter les données dans NodeJS qui sont cryptées à l'aide de Swift CryptoKit - AES-256-GCM

Crypter RSA / ECB / OAEP avec SHA-256AndMGF1Padding Swift

Crypter et décrypter une grande chaîne en java à l'aide de RSA

Crypter et décrypter les données à l'aide de Blowfish / CBC / PKCS5Padding

Crypter et décrypter les données à l'aide de Blowfish avec Coldfusion et .NET / BouncyCastle

Comment utiliser le château gonflable dans .net pour crypter à l'aide de RSA / ECB / OAEPWithSHA256AndMGF1Padding?

Comment crypter à l'aide des informations d'identification de l'utilisateur Windows actuel dans powershell pour KeePass ?

crypter / décrypter le contenu de tout le dossier dans PowerShell à l'aide d'AWS KMS

Comment puis-je crypter des données à l'aide d'une clé publique du certificat ECC X509 dans le framework .net sous Windows?

Comment décrypter le texte déjà crypté dans le passé à l'aide du décryptage Java AES 256 ?

Crypter en toute sécurité les détails des clients au repos dans la base de données MySQL à l'aide de PHP

comment décrypter les données cryptées SunJCE à l'aide du fournisseur de château gonflable

TOP liste

  1. 1

    comment afficher un bouton au-dessus d'un autre élément ?

  2. 2

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  3. 3

    Je continue à obtenir l'objet 'WSGIRequest' n'a pas d'attribut 'Get' sur django

  4. 4

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  5. 5

    Conversion double en BigDecimal en Java

  6. 6

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

  7. 7

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  8. 8

    Passer la taille d'un tableau 2D à une fonction ?

  9. 9

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  10. 10

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  11. 11

    CSS: before ne fonctionne pas sur certains éléments,: after fonctionne très bien

  12. 12

    Comment créer un bot à compte à rebours dans Discord en utilisant Python

  13. 13

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  14. 14

    Exporter la table de l'arborescence vers CSV avec mise en forme

  15. 15

    Comment activer le message Pylint "too-many-locals" dans VS Code?

  16. 16

    Créer un système Buzzer à l'aide de python

  17. 17

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  18. 18

    Empêcher l'allocation de mémoire dans la génération de combinaison récursive

  19. 19

    Déplacement des moindres carrés d'ajustement pour les déplacements de points ayant des problèmes

  20. 20

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  21. 21

    Microsoft.WebApplication.targets

chaudétiquette

Archive