स्ट्रिंग के साथ बिगइंटर का निर्माण करते समय, स्ट्रिंग को दशमलव संख्या के रूप में स्वरूपित किया जाना चाहिए। आप अक्षरों का उपयोग नहीं कर सकते हैं, जब तक आप दूसरे तर्क में कोई रेडिक्स निर्दिष्ट नहीं करते हैं, तो आप रेडिक्स में 36 तक निर्दिष्ट कर सकते हैं। 36 आपको अल्फान्यूमेरिक वर्ण केवल [0-9, ए-जेड] देगा, इसलिए यदि आप इसका उपयोग करते हैं, तो आपके पास कोई स्वरूपण नहीं होगा। आप बना सकते हैं: नई BigInteger ("ihavenospaces", 36) फिर वापस कन्वर्ट करने के लिए, एक .toString (36)
का उपयोग लेकिन स्वरूपण रखने के लिए: बाइट [] विधि है कि एक जोड़े को उल्लेखित व्यक्ति का प्रयोग करें।यह डेटा को छोटे आकार में स्वरूपित करने के साथ पैक करेगा, और आपको आसानी से बाइट्स की संख्या को ट्रैक करने की अनुमति देगा
यह आरएसए सार्वजनिक कुंजी क्रिप्टो सिस्टम उदाहरण प्रोग्राम के लिए सही होना चाहिए, मानते हुए कि आप बाइट्स की संख्या को रखते हैं संदेश पीक्यू
की बाइट की संख्या की तुलना में छोटे
(मुझे पता है इस सूत्र पुरानी है)
अगर मैं अपनी टिप्पणी सही समझते हैं, अपने संदेश नहीं है जरूरी एक संख्या। मुझे लगता है कि हम में से अधिकांश का मानना है कि संदेश एक संख्या का प्रतिनिधित्व करने वाली स्ट्रिंग होने के लिए था (जैसे "12345")। लेकिन आप जो करना चाहते हैं वह "हैलो" को कुछ नंबर में कनवर्ट करना है और फिर मूल स्ट्रिंग को फिर से स्थापित करने में सक्षम होना चाहिए। यह सोचकर कि आप ऐसा क्यों करना चाहते हैं ... आईएमओ कनवर्टिंग स्ट्रिंग को BigInteger में इस तरह से केवल तभी समझ में आता है जब आप परिणामस्वरूप संख्या के साथ गणना करना चाहते हैं, लेकिन फिर इसे वापस परिवर्तित करना समझ में नहीं आता है। मैं क्या खो रहा हूँ? – Axel
वास्तव में आरएसए क्रिप्टोसिस्टम पर एक प्रोग्राम बना रहा है और निश्चित रूप से में मुझे संदेश को बिगइंटर (शिलालेख के दौरान) में परिवर्तित करने की आवश्यकता है और फिर डिस्क्रिप्शन के दौरान रिवर्स प्रक्रिया को बदलने की आवश्यकता है। लेकिन मुझे यह जानने के बिना जवाब देना चाहिए कि मैं ऐसा क्यों कर रहा हूं क्योंकि हर चीज ' यहां समझाया नहीं जा सकता है। – condinya