मुझे वर्तमान में एक स्ट्रिंग एन्क्रिप्ट करने और सीई में एईएस-128 सममित एन्क्रिप्शन का उपयोग करके एक बाइट सरणी डिक्रिप्ट करने का एक तरीका चाहिए। मुझे ऐसा करने का कोई तरीका नहीं मिल रहा है, लेकिन शायद मुझे कुछ याद आया है।एवीएस 128 के बिना एवी 128 का उपयोग करके मैं एन्क्रिप्ट और डिक्रिप्ट कैसे कर सकता हूं?
उत्तर
आयात नामस्थान
using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;
static void Main(string[] args)
{
string value = "@arifansari300<3>";
string encryptedValue= EncryptDecrypt.Encrypt(value);
string decryptedValue = EncryptDecrypt.Decrypt(encryptedValue);
}
public static string Encrypt(string clearText)
{
string EncryptionKey = "MAKV2SPBNI99212";
byte[] clearBytes = Encoding.Unicode.GetBytes(clearText);
using (Aes encryptor = Aes.Create())
{
Rfc2898DeriveBytes pdb = new
Rfc2898DeriveBytes(EncryptionKey, new byte[]
{ 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
encryptor.Key = pdb.GetBytes(32);
encryptor.IV = pdb.GetBytes(16);
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateEncryptor(), CryptoStreamMode.Write))
{
cs.Write(clearBytes, 0, clearBytes.Length);
cs.Close();
}
clearText = Convert.ToBase64String(ms.ToArray());
}
}
return clearText;
}
public static string Decrypt(string cipherText)
{
string EncryptionKey = "MAKV2SPBNI99212";
byte[] cipherBytes = Convert.FromBase64String(cipherText);
using (Aes encryptor = Aes.Create())
{
Rfc2898DeriveBytes pdb = new
Rfc2898DeriveBytes(EncryptionKey, new byte[]
{ 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
encryptor.Key = pdb.GetBytes(32);
encryptor.IV = pdb.GetBytes(16);
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateDecryptor(), CryptoStreamMode.Write))
{
cs.Write(cipherBytes, 0, cipherBytes.Length);
cs.Close();
}
cipherText = Encoding.Unicode.GetString(ms.ToArray());
}
}
return cipherText;
}
'Rfc2898DeriveBytes' केवल एक अच्छा विकल्प है जब आपको उचित कुंजी उत्पन्न करने के बजाय अंतिम उपयोगकर्ता द्वारा दर्ज पासवर्ड का उपयोग करना होता है। लेकिन उस स्थिति में आपको नमक का उपयोग करना चाहिए (आपके उदाहरण में यह स्थिर है, जो चतुर्थ बिंदु को याद करता है) और अधिक पुनरावृत्तियों (कम से कम 20k, अधिमानतः अधिक)। यदि आपके पास उचित कुंजी है, तो सामान्य एन्क्रिप्शन सरल और * बहुत तेज़ है। – CodesInChaos
मैं इस फ़ंक्शन PHP को कैसे परिवर्तित कर सकता हूं? – user3581428
@CodesInChaos "सामान्य एन्क्रिप्शन" से आपका क्या मतलब है? –
- 1. साथ सी # है कि PHP का उपयोग करके एन्क्रिप्ट किया गया था डेटा को डिक्रिप्ट नहीं कर सकता (Rijdael-128)
- 2. -128 और 128 2 के पूरक में
- 3. mcrypt क्रिप्ट -128 OpenSSL को एईएस 128-ईसीबी रूपांतरण
- 4. पीजीपी एन्क्रिप्ट और डिक्रिप्ट
- 5. कोड 128/ईएएन 128 बारकोड घटक?
- 6. एंड्रॉइड एईएस 128 एन्क्रिप्शन
- 7. मैं सी # में एईएस एल्गोरिदम का उपयोग कर स्ट्रिंग को कैसे डिक्रिप्ट कर सकता हूं?
- 8. मैं जावा या सी ++ में 128 बिट पूर्णांक का प्रतिनिधित्व कैसे कर सकता हूं?
- 9. j8583 फ़ील्ड 128
- 10. एन्क्रिप्ट/डिक्रिप्ट SQLite-डेटाबेस और
- 11. 128 बिट परिशुद्धता
- 12. 128-बिट भाग में एक स्ट्रिंग पर मैं फिर से कैसे सक्रिय कर सकता हूं?
- 13. एक्सओआर 128 बिट बिट्स
- 14. 128-बिट एसएसई काउंटर?
- 15. मैं ब्लूटूथ 16 बिट सेवा यूयूआईडी को 128 बिट यूयूआईडी में कैसे परिवर्तित कर सकता हूं?
- 16. 86 128 बिट परमाणु ऑप्स
- 17. मैं जावास्क्रिप्ट कोड कैसे एन्क्रिप्ट कर सकता हूं ताकि यह डिक्रिप्ट योग्य न हो?
- 18. एंड्रॉइड और आईफोन में एईएस-128 का उपयोग करके एन्क्रिप्शन (विभिन्न परिणाम)
- 19. क्या एईएस-128-सीबीसी और एएस-128 एन्क्रिप्शन के बीच कोई अंतर है?
- 20. क्यूडा पर 128 बिट पूर्णांक?
- 21. झूठी साझाकरण और 128-बाइट संरेखण/पैडिंग
- 22. आरएसए एन्क्रिप्ट/डिक्रिप्ट
- 23. क्या मैं ईमेल एन्क्रिप्ट कर सकता हूं और इसे पाइथन डिफ़ॉल्ट लाइब्रेरी सेट का उपयोग कर वापस डिक्रिप्ट कर सकता हूं?
- 24. PHP में एईएस 128 एन्क्रिप्शन PHP
- 25. रिजेंडेल के साथ एन्क्रिप्ट या डिक्रिप्ट कैसे करें और 256 बिट्स के ब्लॉक-आकार को कैसे करें?
- 26. अमरूद का उपयोग करके मैं यह कैसे कर सकता हूं?
- 27. फ़ाइलों को एन्क्रिप्ट/डिक्रिप्ट करने के लिए रिजेंडेल का उपयोग
- 28. एंड्रॉइड एईएस-128 एन्क्रिप्शन/फ़ाइल का डिक्रिप्शन बहुत धीमा है। मैं गति
- 29. मैं PostgreSQL के साथ पासवर्ड कैसे एन्क्रिप्ट कर सकता हूं?
- 30. मैं सुरक्षित एनवी चर कैसे डिक्रिप्ट कर सकता हूं?
तुम क्यों IVs से बचने के लिए चाहते हैं? वे एक महत्वपूर्ण सुरक्षा सुविधा हैं। – CodesInChaos
@CodesInChaos टिप्पणी पर विस्तार करने के लिए। चतुर्थों को यादृच्छिक रूप से जेनरेट किया जा सकता है और सिफरटेक्स्ट के साथ स्पष्ट रूप से प्रेषित किया जा सकता है। सुरक्षा के लिए चौथाई की गोपनीयता आवश्यक नहीं है। एक चतुर्थ के लिए आवश्यकताओं यह है कि आप एक ही कुंजी और चतुर्थ संयोजन का पुन: उपयोग नहीं करते हैं और चौथाई भविष्यवाणी करना कठिन होता है। – Dev
यह प्रश्न एक प्रोजेक्ट के लिए था जहां किसी को IV के बिना एईएस का उपयोग करके एन्क्रिप्ट करने में दिलचस्पी थी। मैं सहमत हूं कि वे एक महत्वपूर्ण सुरक्षा सुविधा हैं हालांकि! – kdh