Pour commencer, vous aurez besoin de la clé privée pour décrypter le message. Par "clé publique (codée en 64 bits)", je devine ce que vous avez vraiment un certificat encodé Base-64 –, avec une ligne d'en-tête qui dit "----- BEGIN CERTIFICATE -----" et un pied de page qui dit "----- CERTIFICAT FIN -----".
Si c'est correct, vous devez trouver la clé privée. Ceci est parfois stocké dans un fichier au format PKCS # 12, avec une extension ".p12" ou ".pfx". Vous aurez besoin d'un mot de passe pour accéder à la clé privée si elle est stockée dans un tel fichier. OpenSSL et d'autres utilitaires utilisent des fichiers de clés privées qui peuvent être codés en Base-64 – ou binaires. Ceux-ci ont une variété d'extensions, et peuvent ou non être protégés par mot de passe. Si le fichier que vous avez a une ligne d'en-tête de "----- BEGIN RSA PRIVATE KEY -----" ou "----- BEGIN PRIVATE KEY -----", c'est en fait la clé privée . Enfin, Windows peut stocker des clés privées dans son magasin de clés interne.
Lorsque vous clarifiez l'emplacement de la clé privée, veuillez mettre à jour votre question.
Si la clé privée est utilisée du côté Java, cela peut être une tentative d'exécution d'une signature numérique. Alors que tous les fournisseurs Java que j'ai testés produisent des résultats corrects quand (ab) est utilisé de cette façon, si vous faites une signature, la classe Signature
doit être utilisée. Le code C# doit également utiliser un objet de signature pour "vérifier" la signature.
Le chiffrement est effectué avec la clé privée. Puisque la clé publique est publique, n'importe qui peut déchiffrer le message; c'est-à-dire que le message n'est pas confidentiel. Les clés publiques sont utilisées par les destinataires pour vérifier les messages signés.
Veuillez regarder la mise à jour à ma réponse. – erickson