2013-06-03 6 views
7

मैं google + बटन अनुकरण करने की कोशिश कर रहा हूं। LINK पर कोड के कुछ भाग में, यह सत्र आईडी को कुछ प्रकार के हैश में परिवर्तित करता है। मुझे जो मिला वह सत्र आईडी नाम है SAPISID और परिवर्तित हैश नाम SAPISIDHASH है , क्या कोई मुझे बता सकता है कि कोड का कौन सा हिस्सा हैश भाग करता है। किसी भी मदद के लिए किया जाएगा appreciated.i 6 घंटे सीधे खर्च किया है, अभी भी कोई सुराग नहीं :(Google+ बटन के पीछे रिवर्स इंजीनियरिंग जावास्क्रिप्ट

उदाहरण VUOyLIU22fNPz2ko/AbGsxW03_WHoGjaJq is SAPISID और f17aa630b9b9a105dad437b0fedcafe429f6fca2 is SAPISIDHASH लिए

। Php में मैं मेरे लिए hash..nothing मैचों में से सभी प्रकार के।

+0

हैश हेक्स अंक के 40 वर्ण है, इसलिए यह शायद एक [SHA-1 हैश] है (http://en.wikipedia.org/wiki/SHA-1) कुछ की डेटा। बिल्कुल * क्या * डेटा किसी का अनुमान है ... – maerics

+0

न केवल किसी का अनुमान है ... लेकिन इसका मतलब यह था कि वे यह सुनिश्चित करने के लिए अपने रास्ते से बाहर चले गए कि कोई भी इसका अनुमान लगाने में सक्षम नहीं होगा। – djechlin

+0

ripemd160 भी 40 अक्षर .. मैंने सभी हैश की कोशिश की है .. कोड मुझे लगता है कि कुछ प्रतीक बदलता है .. इसलिए यह पता लगाने की ज़रूरत है कि यह – user2449384

उत्तर

6

जीत! कोशिश की खैर कम से कम = पी SAPISIDHASH मैं एपीआई कंसोल में से एक था। बल्कि बड़ी नौकरी के लिए स्वचालन, पूरी तरह से वैध।

वैसे भी -> जो मैंने पाया वह वर्तमान जावास्क्रिप्ट मिलीसेकंड टाइमस्टैम्प और आपके वर्तमान पर SHA1 था आपकी कुकी से SAPISID प्लस डोमेन मूल

इन या मेरे अनुरोध के लिए der काम करने के लिए मैं अनुरोध Authorization:SAPISIDHASH 1439879298823_<hidden sha1 hash value> और X-Origin:https://console.developers.google.com

पहले हैडर मुझे लगता है सर्वर आपके टाइमस्टैम्प और अपने SHA1 मूल्य बताता में निम्न हेडर शामिल करने के लिए किया था। दूसरा (यदि आप इसे शामिल नहीं करते हैं तो ब्रेक) इसे sha1 एल्गोरिदम में उपयोग करने की उत्पत्ति बताता है।

मैं के माध्यम से खुदाई और मूल्यों के बीच संलग्न रिक्त स्थान देखते हैं न्यूनतम किया गया js नोट की टन से बाहर नरक डिबगिंग द्वारा एल्गोरिथ्म पाया

छद्म कोड basiclly>

sha1(new Date().getTime() + " " + SAPISID + " " + origin)

है यह कम से कम है कि मुझे 2015 में मेरे उपयोग मामले में अपना सपिसिश्त मूल्य कैसे मिला (कुछ साल बाद मुझे पता है) ... आपके से अलग है लेकिन शायद मैं वहां एक और युवा युवा हैकर की मदद करूंगा, एक दिन

+0

धन्यवाद दोस्त! आप सबसे अच्छे हो। –

2

डेव थॉमस के सभी क्रेडिट। या "मूल:":

मैं बस स्पष्ट करने के लिए है कि एक्स-उत्पत्ति, या उत्पत्ति के लिए, यदि आप "एक्स-उत्पत्ति" शामिल नहीं करना चाहता:

public class SAPISIDHASH { 

    public static void main(String [] args) { 

     String sapisid = "b4qUZKO4943exo9W/AmP2OAZLWGDwTsuh1"; 
     String origin = "https://hangouts.google.com"; 
     String sapisidhash = "1447033700279" + " " + sapisid + " " + origin; 
     System.out.println("SAPISID:\n"+ hashString(sapisidhash)); 
     System.out.println("Expecting:"); 
     System.out.println("38cb670a2eaa2aca37edf07293150865121275cd"); 

    } 

    private static String hashString(String password) 
    { 
     String sha1 = ""; 
     try 
     { 
      MessageDigest crypt = MessageDigest.getInstance("SHA-1"); 
      crypt.reset(); 
      crypt.update(password.getBytes("UTF-8")); 
      sha1 = byteToHex(crypt.digest()); 
     } 
     catch(NoSuchAlgorithmException e) 
     { 
      e.printStackTrace(); 
     } 
     catch(UnsupportedEncodingException e) 
     { 
      e.printStackTrace(); 
     } 
     return sha1; 
    } 

    private static String byteToHex(final byte[] hash) 
    { 
     Formatter formatter = new Formatter(); 
     for (byte b : hash) 
     { 
      formatter.format("%02x", b); 
     } 
     String result = formatter.toString(); 
     formatter.close(); 
     return result; 
    } 
} 

यहाँ एक उदाहरण है जावा में SHA1 के लिए

स्रोत: Java String to SHA1

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