['   \n  \n [\'ਸਕ੍ਰਿਪਟ ਆਪਣੇ ਕੰਮ ਨੂੰ ਪ੍ਰਿੰਟ ਕਿਉਂ ਨਹੀਂ ਕਰ ਰਹੀ ਹੈ \\n\\ਨਿੰਪੋਰਟ ਹੈਸ਼ਲਿਬ\\ਨਿੰਪੋਰਟ ਬੇਸ58\\ਨਿੰਪੋਰਟ ਈ. ਸੀ. ਡੀ. ਐੱਸ. ਏ. \\ਨਿੰਪੋਰਟ ਰੈਂਡਮ\\n\\ਨ. ਐੱਨ. ਡੀ. ਈ. ਐੱਫ. ਜਨਰੇਟ _ ਕੀ _ ਪੇਅਰ (ਐਡਰੈੱਸ _ ਡਾਟਾਬੇਸ): \\nਜਦੋਂ ਕਿ ਸਹੀਃ \\n #ਇੱਕ ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀ (44-ਬਿੱਟ ਐਂਟਰੋਪੀ) \\n ਐਂਟਰੋਪੀ = random.getrandbits (44) \\n ਪ੍ਰਾਈਵੇਟ _ ਕੀ = ਤਿਆਰ ਕਰੋhashlib.sha256 (ਸਟਰ (ਸਟਰ (ਐਂਟਰੋਪੀ). ਐਨਕੌਡ ()). ਹੈਕਸਡਾਈਜੈਸਟ (). ਐਨਕੌਡ ()). ਹੈਕਸਡਾਈਜੈਸਟ () \\n\\n #ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀ ਤੋਂ ਇੱਕ ਜਨਤਕ ਕੁੰਜੀ ਤਿਆਰ ਕਰੋ \\n sk =ecdsa.SigningKey.from_string (bytes.fromhex (ਪ੍ਰਾਈਵੇਟ _ ਕੁੰਜੀ), ਕਰਵ = ecdsa.SECP256k1) \\n vk = sk.get_verifying_key () \\n\\n #ਕੰਪਰੈੱਸਡ ਪਬਲਿਕ ਜਨਰੇਟ ਕਰੋ।ਕੁੰਜੀ \\n ਪਬਲਿਕ _ ਕੀ _ ਕੰਪਰੈੱਸਡ =\\\'04\\\' + vk.to_string (). ਹੈਕਸ () \\n\\n #ਕੰਪ੍ਰੈੱਸਡ ਪਬਲਿਕ ਕੁੰਜੀ \\n ਰਿਪੇਮਡ160 = ਤੋਂ ਬਿਟਕੋਿਨ ਐਡਰੈੱਸ ਜਨਰੇਟ ਕਰੋ।hashlib.new (\\\'ripemd160\\\') \\n ripemd160.update (hashlib.sha256 (bytes.fromhex (ਪਬਲਿਕ _ ਕੀ _ ਕੰਪਰੈੱਸਡ)). ਡਾਈਜੈਸਟ ()) \\n ਹੈਸ਼ਡ _ ਪਬਲਿਕ _ ਕੀ = b "\\\\x00" +ripemd160.digest () \\n ਚੈੱਕਸਮ = hashlib.sha256 (hashlib.sha256 (ਹੈਸ਼ਡ _ ਪਬਲਿਕ _ ਕੀ). ਡਾਈਜੈਸਟ (). ਡਾਈਜੈਸਟ () [: 4] \\n ਬਿਟਕੋਿਨ _ ਐਡਰੈੱਸ _ ਕੰਪਰੈੱਸਡ =base58.b58encode (ਹੈਸ਼ਡ _ ਪਬਲਿਕ _ ਕੀ + ਚੈੱਕਸਮ). ਡੀਕੋਡ () \\n\\n #ਸੰਕੁਚਿਤ ਜਨਤਕ ਕੁੰਜੀ\\n ਪਬਲਿਕ _ ਕੀ _ ਪੁਆਇੰਟ = vk.pubkey.point \\nx = ਤਿਆਰ ਕਰੋpublic_key_point.x () \\n y = public_key_point.y () \\n ਜੇਕਰ y% 2 = = 0: \\n ਪਬਲਿਕ _ ਕੀ _ ਕੰਪਰੈੱਸਡ =\\\'02\' + ਫਾਰਮੈਟ (x,\\\'064x\') \\n ਹੋਰਃਪਬਲਿਕ _ ਕੀ _ ਕੰਪਰੈੱਸਡ =\\\'03\\\' + ਫਾਰਮੈਟ (x,\\\'064x\\\') \\n\\n #ਸੰਕੁਚਿਤ ਜਨਤਕ ਕੁੰਜੀ \\n ripemd160 _ ਕੰਪ੍ਰੈੱਸਡ = ਤੋਂ ਬਿਟਕੋਿਨ ਐਡਰੈੱਸ ਤਿਆਰ ਕਰੋ।hashlib.new (\\\'ripemd160\\\') \\n ripemd160_compressed.update (hashlib.sha256 (bytes.fromhex (ਪਬਲਿਕ _ ਕੀ _ ਕੰਪਰੈੱਸਡ)). ਡਾਈਜੈਸਟ ()) \\n ਹੈਸ਼ਡ _ ਪਬਲਿਕ _ ਕੀ _ ਕੰਪਰੈੱਸਡ= b "\\\\x00" + ripemd160_compressed.digest () \\n ਚੈੱਕਸਮ _ ਕੰਪਰੈੱਸਡ =hashlib.sha256 (hashlib.sha256 (ਹੈਸ਼ਡ _ ਪਬਲਿਕ _ ਕੀ _ ਕੰਪਰੈੱਸਡ). ਡਾਈਜੈਸਟ (). ਡਾਈਜੈਸਟ () [: 4] \\n ਬਿਟਕੋਿਨ _ ਐਡਰੈੱਸ _ ਕੰਪ੍ਰੈੱਸਡ =base58.b58encode (ਹੈਸ਼ਡ _ ਪਬਲਿਕ _ ਕੀ _ ਕੰਪਰੈੱਸਡ + ਚੈੱਕਸਮ _ ਕੰਪ੍ਰੈੱਸਡ). ਡੀਕੋਡ () \\n\\n #ਜਾਂਚ ਕਰੋ ਕਿ ਕੀ ਤਿਆਰ ਕੀਤਾ ਪਤਾ ਡਾਟਾਬੇਸ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ।ਬਿਟਕੋਿਨ _ ਐਡਰੈੱਸ _ ਐਡਰੈੱਸ _ ਡਾਟਾਬੇਸ ਵਿੱਚ ਸੰਕੁਚਿਤ ਜਾਂ ਬਿਟਕੋਿਨ _ ਐਡਰੈੱਸ _ ਐਡਰੈੱਸ _ ਡੇਟਾਬੇਸ ਵਿੱਚ ਸੰਕੁਚਿਤਃ \\n ਬਿਟਕੋਿਨ _ ਐਡਰੈੱਸ _ ਸੰਕੁਚਿਤ ਵਾਪਸ ਕਰੋ,ਬਿਟਕੋਇਨ _ ਐਡਰੈੱਸ _ ਕੰਪਰੈੱਸਡ, ਪ੍ਰਾਈਵੇਟ _ ਕੁੰਜੀ, ਐਂਟਰੋਪੀ\\ਨ\\ਨ #address_database.txt \\ਨਡਰੈੱਸ _ ਡਾਟਾਬੇਸ = [] \\ਨਵਿਥ ਤੋਂ ਐਡਰੈੱਸ ਡਾਟਾਬੇਸ ਨੂੰ ਪਡ਼੍ਹੋ।ਫਾਈਲ ਦੇ ਰੂਪ ਵਿੱਚ ਖੋਲ੍ਹੋ (\\\'address_database.txt\\\',\\\'r\'): ਫਾਈਲ ਵਿੱਚ ਲਾਈਨ ਲਈ \\n: \\n address_database.append (line.strip ()) \\n\\n #ਬਿਟਕੋਿਨ ਐਡਰੈੱਸ ਅਤੇ ਪ੍ਰਾਈਵੇਟ ਜਨਰੇਟ ਕਰੋਡਾਟਾਬੇਸ ਦੇ ਵਿਰੁੱਧ ਚੈੱਕ ਕਰਦੇ ਸਮੇਂ ਕੁੰਜੀਆਂ ਸੱਚ ਹੈਃ \\n ਬਿਟਕੋਿਨ _ ਐਡਰੈੱਸ _ ਕੰਪਰੈੱਸਡ, ਬਿਟਕੋਿਨ _ ਐਡਰੈੱਸ \'] ', 'ਸਕ੍ਰਿਪਟ ਆਪਣਾ ਕੰਮ ਇੰਪੋਰਟ ਹੈਸ਼ਲਿਬ ਇੰਪੋਰਟ ਬੇਸ58 ਇੰਪੋਰਟ ਈ. ਸੀ. ਡੀ. ਐੱਸ. ਏ. ਇੰਪੋਰਟ ਰੈਂਡਮ ਡੀ. ਐੱਫ. ਜਨਰੇਟ _ ਕੀ _ ਪੇਅਰ (ਐਡਰੈੱਸ _ ਡਾਟਾਬੇਸ) ਪ੍ਰਿੰਟ ਕਿਉਂ ਨਹੀਂ ਕਰ ਰਹੀ ਹੈਃ ਜਦੋਂ ਕਿ ਸੱਚਾਃ #ਇੱਕ ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀ (44-ਬਿੱਟ ਐਂਟਰੋਪੀ) ਐਂਟਰੋਪੀ = random.getrandbits (44) ਪ੍ਰਾਈਵੇਟ _ ਕੁੰਜੀ = ਬਣਾਓhashlib.sha256 (ਸਟਰ (hashlib.sha256 (ਸਟਰ (ਐਨਟ੍ਰੌਪੀ). ਐਨਕੋਡ ()). ਹੈਕਸਡਾਈਜੈਸਟ (). ਐਨਕੋਡ (). ਹੈਕਸਡਾਈਜੈਸਟ () #ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀ ਸਕਿ = ਤੋਂ ਇੱਕ ਜਨਤਕ ਕੁੰਜੀ ਤਿਆਰ ਕਰੋecdsa.SigningKey.from_string (bytes.fromhex (ਪ੍ਰਾਈਵੇਟ _ ਕੁੰਜੀ), ਕਰਵ = ecdsa.SECP256k1) vk = sk.get_verifying_key () #ਅਣ-ਸੰਕੁਚਿਤ ਜਨਤਕ ਕੁੰਜੀ ਤਿਆਰ ਕਰੋਪਬਲਿਕ _ ਕੀ _ ਅਣ-ਸੰਕੁਚਿਤ = \'04\' + vk.to_string (). ਹੈਕਸ () #ਅਣ-ਸੰਕੁਚਿਤ ਜਨਤਕ ਕੁੰਜੀ ਰਿਪੇਮਡ160 = ਤੋਂ ਬਿਟਕੋਿਨ ਪਤਾ ਤਿਆਰ ਕਰੋhashlib.new (\'ripemd160\') ripemd160.update (hashlib.sha256 (bytes.fromhex (ਪਬਲਿਕ _ ਕੀ _ ਕੰਪਰੈੱਸਡ)). ਡਾਈਜੈਸਟ ()) ਹੈਸ਼ਡ _ ਪਬਲਿਕ _ ਕੀ = b "\\x00" +ripemd160.digest () ਚੈੱਕਸਮ = hashlib.sha256 (hashlib.sha256 (ਹੈਸ਼ਡ _ ਪਬਲਿਕ _ ਕੀ). ਡਾਈਜੈਸਟ (). ਡਾਈਜੈਸਟ () [: 4] ਬਿਟਕੋਿਨ _ ਐਡਰੈੱਸ _ ਕੰਪਰੈੱਸਡ =base58.b58encode (ਹੈਸ਼ਡ _ ਪਬਲਿਕ _ ਕੀ + ਚੈੱਕਸਮ). ਡੀਕੋਡ () #ਸੰਕੁਚਿਤ ਜਨਤਕ ਕੁੰਜੀ ਪਬਲਿਕ _ ਕੀ _ ਪੁਆਇੰਟ = vk.pubkey.point x = ਤਿਆਰ ਕਰੋpublic_key_point.x () y = public_key_point.y () ਜੇਕਰ y% 2 = = 0: ਪਬਲਿਕ _ ਕੀ _ ਸੰਕੁਚਿਤ = \'02\' + ਫਾਰਮੈਟ (x, \'064x\') ਹੋਰਃ ਪਬਲਿਕ _ ਕੀ _ ਸੰਕੁਚਿਤ = \'03\' +ਫਾਰਮੈਟ (x, \'064x\') #ਸੰਕੁਚਿਤ ਜਨਤਕ ਕੁੰਜੀ ripemd160 _ ਕੰਪਰੈੱਸਡ = hashlib.new (\'ripemd160\') ਤੋਂ ਬਿਟਕੋਿਨ ਐਡਰੈੱਸ ਤਿਆਰ ਕਰੋ।ripemd160_compressed.update (hashlib.sha256 (bytes.fromhex (ਪਬਲਿਕ _ ਕੀ _ ਕੰਪਰੈੱਸਡ)). ਡਾਈਜੈਸਟ ()) ਹੈਸ਼ਡ _ ਪਬਲਿਕ _ ਕੀ _ ਕੰਪਰੈੱਸਡ = b "\\x00" +ripemd160_compressed.digest () ਚੈੱਕਸਮ _ ਕੰਪਰੈੱਸਡ = hashlib.sha256 (hashlib.sha256 (ਹੈਸ਼ਡ _ ਪਬਲਿਕ _ ਕੀ _ ਕੰਪਰੈੱਸਡ). ਡਾਈਜੈਸਟ (). ਡਾਈਜੈਸਟ () [: 4]ਬਿਟਕੋਇਨ _ ਐਡਰੈੱਸ _ ਕੰਪਰੈੱਸਡ = base58.b58encode (ਹੈਸ਼ਡ _ ਪਬਲਿਕ _ ਕੀ _ ਕੰਪ੍ਰੈੱਸਡ + ਚੈੱਕਸਮ _ ਕੰਪ੍ਰੈੱਸਡ). ਡੀਕੋਡ () #ਚੈੱਕ ਕਰੋ ਕਿ ਕੀ ਤਿਆਰ ਕੀਤਾ ਪਤਾ ਮੇਲ ਖਾਂਦਾ ਹੈਡਾਟਾਬੇਸ ਜੇਕਰ ਬਿਟਕੋਇਨ _ ਐਡਰੈੱਸ _ ਐਡਰੈੱਸ _ ਡੇਟਾਬੇਸ ਵਿੱਚ ਸੰਕੁਚਿਤ ਹੈ ਜਾਂ ਬਿਟਕੋਿਨ _ ਐਡਰੈੱਸ _ ਐਡਰੈੱਸ _ ਡੇਟਾਬੇਸ ਵਿੱਚ ਸੰਕੁਚਿਤ ਹੈਃ ਵਾਪਸੀਬਿਟਕੋਇਨ _ ਐਡਰੈੱਸ _ ਕੰਪਰੈੱਸਡ, ਬਿਟਕੋਇਨ _ ਐਡਰੈੱਸ _ ਕੰਪਰੈੱਸਡ, ਪ੍ਰਾਈਵੇਟ _ ਕੀ, ਐਂਟਰੋਪੀ #address_database.txt ਐਡਰੈੱਸ _ ਡਾਟਾਬੇਸ ਤੋਂ ਐਡਰੈੱਸ ਡਾਟਾਬੇਸ ਪਡ਼੍ਹੋ।= [] ਫਾਈਲ ਦੇ ਰੂਪ ਵਿੱਚ ਖੁੱਲ੍ਹੇ (\'address_database.txt\', \'r\') ਦੇ ਨਾਲਃ ਫਾਈਲ ਵਿੱਚ ਲਾਈਨ ਲਈਃ address_database.append (line.strip ()) #ਬਿਟਕੋਿਨ ਪਤੇ ਅਤੇ ਪ੍ਰਾਈਵੇਟ ਬਣਾਓਡਾਟਾਬੇਸ ਦੇ ਵਿਰੁੱਧ ਚੈੱਕ ਕਰਦੇ ਸਮੇਂ ਕੁੰਜੀਆਂ ਜਦੋਂ ਕਿ ਸਹੀਃ ਵਿਕੀਪੀਡੀਆ _ ਐਡਰੈੱਸ _ ਕੰਪਰੈੱਸਡ, ਵਿਕੀਪੀਡੀਆ _ ਐਡਰੈੱਸ \n ']