/ एन्क्रिप्शन के लिए / c # कोड [बंद] - c #, एन्क्रिप्शन

एन्क्रिप्शन के लिए सी # कोड [बंद] - सी #, एन्क्रिप्शन

मैं हार्ड डिस्क, मदर बोर्ड इत्यादि के सेरेल नंबर को एन्क्रिप्ट करना चाहता हूं। कृपया एन्क्रिप्शन के लिए कुछ अच्छे गणितीय समीकरण सुझाएं?

उत्तर:

जवाब के लिए 9 № 1

एन्क्रिप्शन शामिल अंगूठे का एक सामान्य नियम है,यदि आपने पहले इसे नहीं किया है, तो आप इसे गलत करने जा रहे हैं। यदि एन्क्रिप्शन महत्वपूर्ण है, तो किसी और के पैकेज का उपयोग करें (जो आपके पास स्रोत है, अधिमानतः, ताकि वे "टी परिचय बैकडोर) न करें, क्योंकि वे बग्स को इस्त्री करेंगे। चेक आउट श्नीयर की पुस्तक कुछ सामान्य समीकरणों और कार्यान्वयन के लिए क्रिप्टो पर।

लेकिन, अगर आप एन्क्रिप्शन का उपयोग करना चाहते हैं और नहींइसे लागू करने के साथ वास्तव में गड़बड़ है (भले ही वह पुस्तक से कोड पर प्रतिलिपि बना रहा हो), फिर एन्क्रिप्शन नामस्थान की जांच करें जो अन्य लोगों ने उल्लेख किया है।


जवाब के लिए 3 № 2

System.Security.Cryptography नामस्थान
http://msdn.microsoft.com/en-us/library/system.security.cryptography.aspx


जवाब के लिए 0 № 3

http://code.google.com/p/zscreen/source/browse/trunk/ZScreenLib/Helpers/PasswordManager.cs एक स्ट्रिंग को एन्क्रिप्ट और डिक्रिप्ट करने के तरीके हैं। यह एक शुरुआत है :)


जवाब के लिए 0 № 4

इस बात पर निर्भर करता है कि आप उनका क्या उपयोग करना चाहते हैं। इसमें बहुत सारे एल्गोरिदम लागू किए गए हैं System.Security.Cryptography नाम स्थान।

यदि आप डेटा को एन्क्रिप्ट करना चाहते हैं और उन्हें अन्य मशीन पर भेजते हैं और उन्हें वहां डिक्रिप्ट करते हैं तो आपका सर्वश्रेष्ठ दांव असममित एन्क्रिप्शन, जैसे आरएसए.

यदि आप केवल डेटा को एन्कोडिंग के साथ ठीक कर रहे हैं और फिर उनकी तुलना कर रहे हैं, लेकिन उन्हें कभी भी डिकोडिंग नहीं करना है तो सबसे अच्छा दांव हैश का उपयोग करना है, जैसे SHA-1.

यदि आप केवल स्ट्रिंग को मुखौटा करना चाहते हैं, तो आप प्रत्येक चरित्र को स्पष्ट रूप से कुछ पूर्वनिर्धारित स्थिरांक के साथ XOR कर सकते हैं और फिर उसी प्रक्रिया को करके डिकोड कर सकते हैं:

private static string key = "MySecretKey";
private static byte[] keyData = Encoding.ASCII.GetBytes(key);

public static byte[] Encrypt(byte[] source)
{
byte[] target = new byte[source.Length];

for (int i = 0; i < target.Length; i++)
target[i] = (byte)(source[i] ^ keyData[i % keyData.Length]);

return target;
}

जवाब के लिए 0 № 5

जैसा कि आप C # I "d। .NET फ्रेमवर्क को देख रहे हैं क्रिप्टोग्राफी नामस्थान.

आपको यहां अपने लिए दिए गए एल्गोरिदम में से किसी एक का उपयोग करना चाहिए, बल्कि अपने स्वयं के कार्यान्वयन के लिए देखना चाहिए।

यह पिछला प्रश्न भी देखें .NET में शॉर्ट स्ट्रिंग्स को एन्क्रिप्ट करने का सबसे अच्छा तरीका


जवाब के लिए 0 № 6

The BouncyCastle C# संस्करण भी आप .net क्रिप्टोग्राफ़ी से बाहर कुछ दिलचस्प सुविधाओं की पेशकश हो सकती है ।