2015-12-07 11 views
12

मैं जेडब्ल्यूटी तकनीक के लिए नया हूं और मैं इसके बारे में बहुत कुछ पढ़ रहा हूं। गुप्त कुंजी जेडब्ल्यूटी एन्क्रिप्ट पेलोड जानकारी

सत्यापित की जानी आंकड़े

  • हस्ताक्षर यह संभव है:

    1. हैडर:: एल्गोरिथ्म & टोकन लिखें
    2. पेलोड

      मैं जेडब्ल्यूटी पता 3 भागों में है पेलोड जानकारी एन्क्रिप्ट करें? मेरा मतलब है, के उदाहरण के लिए कहते हैं कि मैं अपने टोकन में इस पेलोड जानकारी डालते हैं:

      { 
      "iss": "joe", 
      "exp": "1300819380", 
      "data": { 
          "id": "12", 
          "userName": "PH", 
          "qntRed": "7", 
          "qntGrad": { 
           "1": "800", 
           "2": "858", 
           "3": "950", 
           "4": "745", 
           "5": "981" 
          } 
      } 
      

      और मान लें कि "qntGrad" संवेदनशील जानकारी है। क्या गुप्त कुंजी के साथ भी इसे एन्क्रिप्ट करना संभव है? क्या यह अभी भी एक जेडब्ल्यूटी टोकन है?

  • उत्तर

    10

    वास्तव में वहाँ केवल जेडब्ल्यूटी हस्ताक्षरित नहीं है, लेकिन कई प्रौद्योगिकियों RFC के द्वारा वर्णित:

    अपने मामले में, आरएफसी 7516 (जेडब्ल्यूई) पढ़ें। ये JWE 5 भाग होते हैं:

    • संरक्षित हैडर
    • एन्क्रिप्टेड कुंजी
    • प्रारंभ वेक्टर
    • बीजलेख
    • प्रमाणीकरण टैग

    अपने मंच पर निर्भर करता है, तो आप एक पुस्तकालय पा सकते हैं कि आपको ऐसे एन्क्रिप्टेड जेडब्ल्यूटी बनाने में मदद मिलेगी। PHP के बारे में, मैं a library लिख रहा हूं जो पहले से ही इन जोस को लोड और बनाने में सक्षम है।

    +0

    हाय, @ फ्लोरेंट-मॉर्सेलि, मैं आरएफसी 7516 के बारे में पढ़ूंगा! यह वास्तव में मेरी जरूरत फिट बैठता है। और वैसे, मैं अपने बैकएंड में 'PHP' का उपयोग कर रहा हूं। सहायता के लिए धन्यवाद! –

    +1

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

    -1

    नीचे एईएस का उपयोग करके एन्क्रिप्ट करने के लिए एक बहुत ही सरल और प्रभावी विधि है। ध्यान दें कि आपको अपनी कुंजी प्राप्त करने की आवश्यकता होगी (टिप्पणियों में लिंक शामिल)।

    ध्यान दें कि जब आप एन्क्रिप्ट करते हैं, तो यह प्रत्येक एन्क्रिप्शन कॉल के लिए IV सेट करेगा। आपको इसे डिक्रिप्ट करने की आवश्यकता होगी।

    public class CustomEncryption 
    { 
        public static string Encrypt256(string text, byte[] AesKey256, out byte[] iv) 
        { 
         // AesCryptoServiceProvider 
         AesCryptoServiceProvider aes = new AesCryptoServiceProvider(); 
         aes.BlockSize = 128; 
         aes.KeySize = 256; 
         aes.Key = aesKey256(); 
         aes.Mode = CipherMode.CBC; 
         aes.Padding = PaddingMode.PKCS7; 
         iv = aes.IV; 
    
         byte[] src = Encoding.Unicode.GetBytes(text); 
    
         using (ICryptoTransform encrypt = aes.CreateEncryptor()) 
         { 
          byte[] dest = encrypt.TransformFinalBlock(src, 0, src.Length); 
    
          return Convert.ToBase64String(dest); 
         } 
        } 
    
        public static string Decrypt256(string text, byte[] AesKey256, byte[] iv) 
        { 
         AesCryptoServiceProvider aes = new AesCryptoServiceProvider(); 
         aes.BlockSize = 128; 
         aes.KeySize = 256; 
         aes.IV = iv; 
         aes.Key = aesKey256(); 
         aes.Mode = CipherMode.CBC; 
         aes.Padding = PaddingMode.PKCS7; 
    
         byte[] src = System.Convert.FromBase64String(text); 
    
         using (ICryptoTransform decrypt = aes.CreateDecryptor()) 
         { 
          byte[] dest = decrypt.TransformFinalBlock(src, 0, src.Length); 
          return Encoding.Unicode.GetString(dest); 
         } 
        } 
    
        private static byte[] aesKey256() 
        { 
         //you will need to get your own aesKey 
         //for testing you can generate one from 
         //https://asecuritysite.com/encryption/keygen 
    
         return new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5 }; 
        } 
    } 
    

    }

    0

    नहीं टोकन एन्क्रिप्ट करने का मतलब है कि अन्य बाहरी सेवाओं पढ़ सकते हैं और मान्य है कि टोकन अपनी निजी कुंजी के लिए उपयोग किए बिना प्रामाणिक वास्तव में कर सकते हैं।(उन्हें केवल सार्वजनिक कुंजी की आवश्यकता होगी)

    संबंधित मुद्दे