robertosalemi Inserito: 3 maggio 2021 Segnala Share Inserito: 3 maggio 2021 Ciao, è la prima volta che utilizzo un certificato per criptare i dati. Nella mia macchina ho installato openSSL, tramite il prompt dei comandi invio i due comandi: Criptare (fornita da chi mi ha dato il certificato X.509 contenente la chiave pubblica con padding PKCS#1 v 1.5): [code] openssl rsautl -encrypt -in esempio.txt -out esempio.encrypted -inkey certificate.cer -certin -pkcs [/code] Decriptare: [code] openssl rsautl -decrypt -inkey cert\private.pem -in esempio.encrypted -out esempio.decrypted [/code] La stringa all'interno del file esempio.txt viene restituita correttamente. Vorrei replicare le stesse istruzioni all'interno di una solution in VB con VisualStudio2019, cripto i miei dati (una stringa), ma se provo a decryptarla tramite openSSL ottengo l'errore: [code] RSA operation error 21060:error:0406506C:rsa routines:rsa_ossl_private_decrypt:data greater than mod len:crypto\rsa\rsa_ossl.c:401: [/code] Codice VB: [code] Dim cert As X509Certificate2 Dim strToEncrypt As String Dim encryptedString As String ' Lettura del certificato cert = New X509Certificate2(Path.Combine(Directory.GetCurrentDirectory(), "certificate.cer"), "", X509KeyStorageFlags.Exportable) 'String da crittografare strToEncrypt = "Questa è la mia stringa" Dim rsaProvider As RSACryptoServiceProvider = DirectCast(cert.PublicKey.Key, RSACryptoServiceProvider) 'Convert the string into a Byte Array and encrypt w/ public key Dim bytesToEncrypt() As Byte = Encoding.ASCII.GetBytes(strToEncrypt) Dim encryptedBytes() As Byte = rsaProvider.Encrypt(bytesToEncrypt, False) Dim base64 As String = Convert.ToBase64String(encryptedBytes) [/code] Cosa non va secondo voi? Grazie. Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora