Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    RSA Encrypt e Decrypt

    Salve, sto cercando di creare un sistema che mi encripti una certa stringa, una password ad esempio, e che in un secondo momento la decripti per utilizzarla.

    Ho trovato questo esempio:

    codice:
    System.Security.Cryptography.RSACryptoServiceProvider Provider = new System.Security.Cryptography.RSACryptoServiceProvider();
    
    byte[] encrypted = Provider.Encrypt(System.Text.Encoding.UTF8.GetBytes("Hello World!"), true);
    string decrypted = System.Text.Encoding.UTF8.GetString(Provider.Decrypt(encrypted, true));
    L'esempio trasforma la stringa in un array di byte e poi lo ritrasforma correttamente in stringa.

    Il problema è che se io encripto e salvo l'array da qualche parte, in un secondo momento riprendendolo e cercando di descriptarlo mi risponde picche, questo perché i parametri RSA cambiano ad ogni esecuzione.

    La mia idea è crearmi dei parametri RSA fissi che valgono per sempre all'interno del mio applicativo, ma provando a modificare gli array di byte delle varie proprietà dei parametri al momento dell'utilizzo mi dice Firma non valida.

    Avete qualche suggerimento su come creare dei parametri fissi a mano?

    Grazie!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Come espressamente indicato nel Regolamento interno, devi specificare (anche nel titolo) il linguaggio di programmazione usato.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Ops, mi sono scordato... cmq più che un linguaggio specifico è una domanda aperta, ho usato C# ma se il suggerimento mi arriva anche da altri linguaggi per me va bene.

    Mi basta trovare un sistema per criptare e successivamente decriptare.

    Io non posso più, è possibile aggiungere [C#] prima del titolo?

    Tnx

  4. #4
    Anf, è stata dura ma sembra che qualcosa sia riuscito a trovarlo, era in VB.Net ma l'ho riconvertito in C#.

    Per prima cosa includere nel progetto il riferimetno a System.Web, poi:

    codice:
    using System;
    using System.Xml;
    using System.Security.Cryptography;
    using System.Web.Security;
    using System.Text;
    
        class Crypto
        {
            string myKey = "";
            TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
            MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
    
    
            static void Main(string[] args)
            {
                Crypto cry = new Crypto();
                string str = "Prova";
                str = cry.Cifra(str);
                str = cry.DeCifra(str);
            }
    
    
            public Crypto()
            {
                //Inserire codice di configurazione della classe
                myKey = "StringaPersonalizzata";
            }
    
    
            public string DeCifra(string testo)
            {
                des.Key = hashmd5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(myKey));
                des.Mode = CipherMode.ECB;
                ICryptoTransform desdencrypt = des.CreateDecryptor();
                byte[] buff = Convert.FromBase64String(testo);
                return ASCIIEncoding.ASCII.GetString(desdencrypt.TransformFinalBlock(buff, 0, buff.Length));
            }
    
            public string Cifra(string testo)
            {
                des.Key = hashmd5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(myKey));
                des.Mode = CipherMode.ECB;
                ICryptoTransform desdencrypt = des.CreateEncryptor();
                ASCIIEncoding MyASCIIEncoding = new ASCIIEncoding();
                byte[] buff = ASCIIEncoding.ASCII.GetBytes(testo);
                return Convert.ToBase64String(desdencrypt.TransformFinalBlock(buff, 0, buff.Length));
            }
    
        }
    La stringa Prova viene convertita in TNzIINuPcaY= e poi viene riconvertiti in Prova.

    Ovviamente il risultato cambia in base alla stringa personalizzata.

    Spero vi possa essere utile, anche se non è RSA

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.