سؤال

أنا جديد في التشفير RSA و لقد تم في محاولة لمعرفة بالضبط كيف يعمل باستخدام .صافي System.Security.Cryptography.

    public String Encryption(Byte[] Input, RSAParameters PublicKey)
    {
        RSAC = new RSACryptoServiceProvider();
        RSAC.ImportParameters(PublicKey);
        Byte[] Encrypt = RSAC.Encrypt(Input, false);
        return Convert.ToBase64String(Encrypt);
    }

باستخدام رمز أعلاه ، أحصل على مختلف سلسلة المشفرة على نفس intput وفي أي وقت أنا إعادة تشغيل التطبيق.أود أن أعرف إذا كان هذا هو السلوك العادي في هذه الحالة هو كيفية منع ذلك.

على سبيل المثال يعود البرنامج أدناه سلسلة الإدخال "مرحبا" :

NopDAF5FRu....

عندما كنت إعادة تشغيل التطبيق الإخراج لنفس المدخلات سوف يكون :

pPPu8x6....

ومع ذلك عند إنشاء كائنات جديدة بالنسبة لي التشفير RSA فئة جميع الكائنات عودة نفس الناتج.

هل كانت مفيدة؟

المحلول

هذا طبيعي و ما يرام.البيانات المشفرة يتم وضع داخل كتلة مبطن مع عشوائية القيم.هذا ثم يجري المشفرة مع العامة مفتاح.

ترى هذا لذا Q&A للحصول على مزيد من التفاصيل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top