2013-06-19 8 views
10

Class<?> कक्षा में एक विधि है public Object[] getSigners() जिसका जावाडॉक यह समझाने में इतना उपयोगी नहीं है कि विधि क्या करती है; इसे दो वर्गों पर बुलाकर मेरे लिए शून्य वापस आ गया।जावा में कक्षा के हस्ताक्षरकर्ता क्या हैं?

Google ने केवल सुरक्षा अपवादों के बारे में जानकारी लौटा दी, जिसने कक्षा के हस्ताक्षरकर्ताओं के बारे में उल्लेख नहीं किया; मैंने इस अपवाद के बारे में वहां देखा है जब एक ही कक्षाएं कई जारों से लोड की जाती हैं।

जावा क्लास के हस्ताक्षरकर्ता वास्तव में क्या दर्शाता है? क्या यह एक अद्वितीय पहचानकर्ता है जो JVM द्वारा प्रदान किया गया है या एक उपकरण द्वारा जब जार पर हस्ताक्षर किए गए हैं?

StackOverflow पर हस्ताक्षरकर्ता के लिए टैग नहीं है, लेकिन यह खाली है ...

+2

http://docs.oracle.com/javase/tutorial/security/toolsign/ – SLaks

+3

वह लिंक यह नहीं बताता कि 'getSigners()' विधि – BlackHatSamurai

+0

क्या करती है शायद उसके साथ कुछ कोड हस्ताक्षर करने का प्रयास करें और देखें कि यह क्या लौटाता है ? –

उत्तर

5

आप जावा में एक .jar फ़ाइल अप करते हैं, Toolsigner इसके माध्यम से चला जाता है और रिकर्सिवली .jar में हर फ़ाइल करें। हालांकि, यह केवल एक हस्ताक्षर तक सीमित नहीं है क्योंकि आप कई अलग-अलग प्रमाणपत्रों के साथ एक फ़ाइल पर हस्ताक्षर कर सकते हैं। जब आप सत्यापित कर रहे हैं कि सही हस्ताक्षरकर्ता द्वारा फ़ाइल पर हस्ताक्षर किए गए हैं तो आप उस वर्ग पर हस्ताक्षर किए गए सभी हस्ताक्षरकर्ताओं की एक सूची वापस करने के लिए विधि getSigners() पर कॉल कर सकते हैं।

+0

और कक्षा हस्ताक्षर करने का एकमात्र तरीका टूलरइनर का उपयोग कर .jar फ़ाइल पर हस्ताक्षर करके है? – m3th0dman

+0

एक टूललाइनर का उपयोग करना एकमात्र व्यावहारिक तरीका है जिसे मैं जानता हूं। इसका उपयोग करना आसान है और बिल्कुल उपयोग करने के लिए बिल्कुल 'व्यावहारिक' कारण नहीं है। –

+0

और एक हस्ताक्षरकर्ता वास्तव में क्या है? यह कुछ प्रकार की सुरक्षा टोकन या कुंजी है? – m3th0dman

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