Trăn ecdsa

Các nhà nghiên cứu từ Đại học Masaryk tiết lộ thông tin quan trọng về các vụ đột nhập trong tôi khác nhauTriển khai thuật toán tạo chữ ký số ECDSA / EdDSA, điều đó cho phép phục hồi giá trị của khóa riêng dựa trên phân tích rò rỉ . Các lỗi tìm kiếm có tên mã là Minerva

Các dự án nổi tiếng nhất cùng ảnh hưởng đến phương pháp tấn công được đề xuất là OpenJDK, OracleJDK [CVE-2019-2894] và thư viện libgcrypt [CVE-2019-13627] được sử dụng trong GnuPG. Các vấn đề cũng dễ dàng ảnh hưởng đến các thư viện MatrixSSL, Crypto ++, wolfCrypt, elip, jsrsasign, Python-ECDSA, ruby_ecdsa, fastecdsa và một số thẻ thông minh Athena IDProtect, Thẻ bọc thép TecSec, SafeNet eToken 4300,

Ngoài các lỗi khóa đã được cập nhật tại thời điểm này, chúng không ảnh hưởng đến OpenSSL, Botan, mbedTLS và BoringSSL. Mozilla NSS, LibreSSL, Nettle, BearSSL, cryptlib, OpenSSL ở FIPS mode. Microsoft. NET crypto, Linux kernel libkcapi, Natri và GnuTLS vẫn chưa được thử nghiệm

Chúng tôi đã tìm thấy các triển khai làm mất độ dài của bit vô hướng trong quá trình nhân vô hướng trong ECC. Sự cố rò rỉ này có vẻ rất nhỏ vì độ dài của bit có một lượng thông tin rất nhỏ hiện diện trong vô hướng. Tuy nhiên, trong trường hợp tạo chữ ký ECDSA / EdDSA, việc lọc độ dài bit của nonce ngẫu nhiên là đủ để khôi phục toàn bộ khóa cá nhân được sử dụng sau khi quan sát vài trăm đến vài chữ ký trong các thư đã ký

Chúng tôi tin rằng tất cả các thẻ trước đó đều bị ảnh hưởng vì chúng chia sẻ một thành phần ECDSA chung [mô-đun FIPS 214], được mô tả là Thành phần Athena OS2 ECDSA755 trong Inside Secure AT90SC A1. 0 [Phần mềm cơ sở]. Chúng tôi đã kiểm tra lỗi bảo mật chỉ trên thẻ Athena IDProtect với dữ liệu CPLC và ATR

Vấn đề là khả năng xác định các giá trị bit riêng lẻ trong quá trình nhân với một đại lượng trong giao dịch ECC. Các phương pháp gián tiếp, giả sử như ước tính độ trong khi thực hiện các tính năng được phép, được sử dụng để trích xuất thông tin về bit

Một cuộc tấn công yêu cầu quyền truy cập không có đặc quyền đối với máy chủ trong đó ký tự điện tử được tạo ra [không loại trừ một cuộc tấn công từ xa, nhưng nó rất phức tạp và cần một lượng lớn dữ liệu để phân tích

Mặc dù kích thước rò rỉ nhỏ, đối với ECDSA, định nghĩa chỉ một vài bit với thông tin về khởi tạo [nonce] là đủ để thực hiện một cuộc tấn công Khôi phục tuần tự khóa riêng tư hoàn chỉnh

Theo các tác giả của phương pháp, để khôi phục lại khóa thành công, phân tích một vài phần trăm đến một vài chữ ký điện tử được tạo là đủ cho các tin nhắn mà kẻ tấn công biết. Ví dụ, để xác định khóa cá nhân được sử dụng trong thẻ thông minh Athena IDProtect dựa trên chip Inside Secure AT90SC, sử dụng đường cong elliptic secp256r1, 11 ký tự số giải mã đã được phân tích. Tổng thời gian tấn công là 30 phút

Mã tấn công và khái niệm bằng chứng từ của chúng tôi được lấy cảm hứng từ phương pháp Brumley & Tuveri

Sự cố đã được giải quyết trong libgcrypt 1. 8. 5 và wolfCrypt 4. 1. 0, các dự án khác chưa được tạo bản cập nhật. Cũng có thể theo dõi bản chỉnh sửa lỗi bị trộm trong gói libgcrypt trong các bản phân phối trên các trang này. Debian, Ubuntu, RHEL, Fedora, openSUSE/SUSE, FreeBSD, Vòm

Các nhà nghiên cứu cũng đã kiểm tra các thẻ và thư viện khác, trong đó những thẻ và thư viện sau đây không dễ bị tấn công

  • OpenSSL 1. 1. 1ngày
  • Lâu đài Bouncy 1. 58
  • Nhàm chánSSL 974f4dddf
  • libtomcrypt 1. 18. 2
  • Khởi động 2. 11. 0
  • Microsoft CNG
  • mbedTLS 2. 16. 0
  • Intel IPP-Crypto

Các

  • DHW ACOSJ 40K
  • Phi Thiên A22CR
  • G&D SmartCafe 6. 0
  • G&D SmartCafe 7. 0
  • Infineon CJTOP 80K INF SLJ 52GLA080AL M8. 4
  • Thẻ JCard đa năng Infineon SLE78
  • NXP JOP31 v2. 4. 1
  • NXP JOP CJ2A081
  • NXP JOP v2. 4. 2 R2
  • NXP JOP v2. 4. 2 R3
  • SIMONE TaiSYS Vault

Nếu bạn muốn biết thêm về các cuộc tấn công được sử dụng và các lỗ hổng được phát hiện, bạn có thể làm như vậy trong phần liên kết theo dõi. Các công cụ được sử dụng để tái tạo cuộc tấn công có sẵn để tải xuống

Về cơ bản tôi đã làm theo các hướng dẫn ở đây làm thế nào để tạo địa chỉ sợi nấm từ 12 trong Python

Nội dung chính Hiển thị

  • python-mnemonic
  • BIP 32 là đề xuất cải tiến tiến trình Bitcoin được đưa ra tiêu chuẩn của ví xác định phân cấp [HD] và các khóa mở rộng cho Bitcoin. BIP 32 là một tiến trình cải tiến đáng kể cho ví bitcoin theo nhiều cách
  • Cài đặt
  • Ví dụ sử dụng
  • BIP thư viện tiện ích
  • Giới thiệu
  • Tiền hỗ trợ
  • Cài đặt gói
  • Và sau đó chỉ cần chạy nó
  • Tài liệu
  • Ví dụ mã hóa
  • ERC20/BEP20. in "Khóa công khai. " + Cơ sở58. check_encode[key. ChildKey[44 + BIP32_HARDEN] \. ChildKey[0 + BIP32_HARDEN] \. ChildKey[account_number + BIP32_HARDEN] \. Khóa con[0] \. Khóa con[i] \. PublicKey[]] in "Khóa riêng. " + Cơ sở58. check_encode[key. ChildKey[44 + BIP32_HARDEN] \. ChildKey[0 + BIP32_HARDEN] \. ChildKey[account_number + BIP32_HARDEN] \. Khóa con[0] \. Khóa con[i] \. Khóa riêng[]] 9
  • Làm thế nào tôi có thể nhận được một cụm từ ghi nhớ từ một khóa riêng?
  • Mnemonic có giống như khóa riêng không?
  • Python ghi nhớ là gì?
  • Ví BIP32 là gì?

Vì vậy, mã của tôi tương tự

from bip32utils import BIP32Key
from bip32utils import BIP32_HARDEN
from bip32utils import Base58
import os, bip39

strength_bits = 128
entropy = os.urandom[strength_bits // 8]
wallet_generator = bip39.Mnemonic['english']
mnemonic = wallet_generator.to_mnemonic[entropy]
assert wallet_generator.to_entropy[mnemonic] == entropy  # see, bijective!

# Or specify the mnemonic directly if you prefer:
mnemonic = 'aware report movie exile buyer drum poverty supreme gym oppose float elegant'
passphrase = 'test'

seed = bip39.Mnemonic.to_seed[mnemonic, passphrase=passphrase]
key = BIP32Key.fromEntropy[seed]
account_number = 0
i = 0
print "Address: " + key.ChildKey[44 + BIP32_HARDEN] \
         .ChildKey[0 + BIP32_HARDEN] \
         .ChildKey[account_number + BIP32_HARDEN] \
         .ChildKey[0] \
         .ChildKey[i] \
         .Address[]

Và tôi đã xác minh nó bằng cách sử dụng https. // iancoleman. io/bip39/#english rằng địa chỉ được tạo thực sự là địa chỉ đầu tiên mà trang web này được tạo. Tuy nhiên, tôi cũng muốn có được cặp từ khóa công khai và tư nhân bằng cách sử dụng cùng một thư viện này. Ban đầu tôi đã thử

print "Public Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
         .ChildKey[0 + BIP32_HARDEN] \
         .ChildKey[account_number + BIP32_HARDEN] \
         .ChildKey[0] \
         .ChildKey[i] \
         .PublicKey[]]

print "Private Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
         .ChildKey[0 + BIP32_HARDEN] \
         .ChildKey[account_number + BIP32_HARDEN] \
         .ChildKey[0] \
         .ChildKey[i] \
         .PrivateKey[]]

Tuy nhiên, đầu ra của hai cuộc gọi này không giống với các cuộc gọi được cung cấp bởi trang web trên cùng một địa chỉ

Vì vậy, câu hỏi của tôi là. cách thích hợp để tôi tạo cặp từ khóa công khai và tư nhân là gì?

chỉnh sửa. Để làm rõ, để biết chính xác ghi nhớ và cụm mật khẩu ở trên, trang web tôi đang sử dụng để tham khảo cho tôi biết địa chỉ đầu tiên và bàn phím nên là

Mặc dù đầu ra của mã Python ở trên là

Address: 1K6WQtD7bLQ5nQ14GyBV33mBWSbkiRKhQs
Public Key: 62Yi9HBYYagf8CY1Ve2fquHKjBqAA7GFjGUUtkUHbkP5PHzv3W
Private Key: EGHMsAp7nY7Jo9F589zCU227KBLTDhiwRq5vYVvRVZxJNPJn4

Vì vậy, địa chỉ khớp, nhưng không phải là bàn phím

python-mnemonic

Ví BIP32 là gì?

BIP 32 là đề xuất cải tiến tiến trình Bitcoin được đưa ra tiêu chuẩn của ví xác định phân cấp [HD] và các khóa mở rộng cho Bitcoin. BIP 32 là một tiến trình cải tiến đáng kể cho ví bitcoin theo nhiều cách

Thực hiện tham chiếu BIP-0039. Ghi nhớ mã để tạo khóa xác định

object

Giấy Bíp

Xem https. //github. com/bitcoin/bips/blob/master/bip-0039. mediawiki to know the full number of skill

Cài đặt

Để cài đặt thư viện này và các thành phần phụ thuộc của nó bằng cách sử dụng

print "Public Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
         .ChildKey[0 + BIP32_HARDEN] \
         .ChildKey[account_number + BIP32_HARDEN] \
         .ChildKey[0] \
         .ChildKey[i] \
         .PublicKey[]]

print "Private Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
         .ChildKey[0 + BIP32_HARDEN] \
         .ChildKey[account_number + BIP32_HARDEN] \
         .ChildKey[0] \
         .ChildKey[i] \
         .PrivateKey[]]
7

Ví dụ sử dụng

Nhập thư viện vào dự án Python thông qua

from mnemonic import Mnemonic

Khởi tạo có thể hiện lớp, chọn từ điển có sẵn

  • Anh
  • tiếng trung_giản thể
  • truyền thống Trung Hoa
  • người Pháp
  • người ý
  • tiếng Nhật
  • Hàn Quốc
  • người Tây Ban Nha
mnemo = Mnemonic[language]
mnemo = Mnemonic["english"]

Tạo danh sách từ sức mạnh được đưa ra [128 - 256]

words = mnemo.generate[strength=256]

xóa danh sách từ và cụm mật khẩu tùy chỉnh [ví dụ trống], tạo hạt giống

seed = mnemo.to_seed[words, passphrase=""]

drop list from, root entropy tính toán

________số 8

BIP thư viện tiện ích

Giới thiệu

Gói này cho phép tạo ghi nhớ, hạt giống, khóa riêng/công cộng và địa chỉ cho các loại tiền điện tử khác nhau. Special

  • MNEMONIC VÀ SEED SVERATION Theo định nghĩa của BIP-0039
  • Mã hóa khóa/giải mã riêng như được định nghĩa bởi BIP-0038
  • Chìa khóa phái từ được định nghĩa bởi
    • BIP-0032
    • SLIP-0010
    • BIP32-ED25519 [Khovratovich/Luật]
  • Đạo hàm của một hệ thống phím như đã được định nghĩa bởi
    • BIP-0044
    • BIP-0049 [Bitcoin Segwit]
    • BIP-0084 [Segwit address Bitcoin]
    • BIP-0086 [Bitcoin Taproot]
    • CIP-1852
  • MNEMONIC VÀ SEED SENTRATION CHO NỀN TẢNG [Hệ sinh thái Polkadot/Kusama]
  • Chìa khóa xuất cho chất nền [Hệ sinh thái Polkadot/Kusama, cùng của Polkadot-JS]
  • Khóa và địa chỉ Thế hệ cho Cardano [Byron-Legacy, Byron-Icarus và Shelley, cùng sổ cái và ví Adalite/Yoroi]
  • MNEMONIC VÀ SEED SVERATION cho Monero
  • Khóa và địa chỉ/thế hệ phụ cho Monero [cùng một ví dụ Monero chính thức]
  • Mnemonic và tạo hạt cho Algorand [Algorand 25 từ Mnemonic]
  • MNEMONIC VÀ SEED SELEATION như ví điện tử [V1 và V2]
  • Chìa khóa đầu ra dưới dạng ví điện thoại [V1 và V2]

Các chức năng được khai thác khác nhau

  • Partition con đường dẫn xuất BIP-0032
  • Đường dẫn xuất phát cơ chất
  • Khóa tự động hóa mở rộng phiên bản như được định nghĩa bởi SLIP-0032
  • Mã hóa/giải mã địa chỉ cho tất cả các đồng tiền được hỗ trợ
  • Mã hóa/giải mã wifi
  • Mã hóa/Giải mã Base58 và Base58 Monero
  • Mã hóa/giải mã SS58
  • Mã hóa/giải mã bech32 và bech32m
  • Mã hóa/giải mã Bitcoin Cash Bech32
  • Nhận địa chỉ tài khoản mã thông báo cho mã thông báo SPL [tức là mã thông báo Solana]

Gói phụ thuộc

  • CBOR2 để mã hóa/giải mã CBOR
  • CRCMOD cho tính toán CRC
  • pycryptodome cho chức năng mã hóa mật mã
  • trùng khớp với đường cong Secp256K1
  • ECDSA cho các đường cong NIST256P1 và SECP256K1
  • ED25519-BLAKE2B cho đường cong ED25519-BLAKE2B
  • Pynacl cho đường cong ED25519
  • PY-SR25519-Ràng buộc cho đường cong SR25519

Xin lưu ý rằng, đối với thư viện PY-SR25519-Bindings, phải cài đặt Rust mới được cài đặt

Tiền hỗ trợ

Tiền BIP được hỗ trợ

  • Mạng Akash
  • Algorand
  • Avalanche [tất cả 3 chuỗi]
  • trục
  • Giao thức ban nhạc
  • chuỗi binance
  • Chuỗi thông tin Binance
  • Bitcoin [và mạng thử nghiệm liên quan]
  • Bitcoin Cash [và mạng thử nghiệm liên quan]
  • Bitcoin Cash Simple Sổ cái Sổ cái [và mạng thử nghiệm liên quan]
  • BitcoInsv [và mạng thử nghiệm liên quan]
  • Cardano [Byron-Legacy, Byron-Icarus và Shelley]
  • Celo
  • chứng nhận
  • vũ trụ
  • Dash [và mạng thử nghiệm liên quan]
  • Dogecoin [và mạng thử nghiệm liên quan]
  • ECASH [và mạng thử nghiệm liên quan]
  • Elrond
  • EOS
  • ERGO [và mạng thử nghiệm liên quan]
  • Ethereum
  • Ethereum cổ điển
  • Fantom Opera
  • Filecoin
  • Harmony One [Địa chỉ Ethereum và Cosmos]
  • Chuỗi Huobi Heco
  • Mạng Iris
  • kava
  • Kusama [dựa trên BIP44 và ED25519 SLIP-0010, như TrustWallet, nó sẽ không tạo ra cùng một địa chỉ của Polkadot-JS]
  • Litecoin [và mạng thử nghiệm liên quan]
  • Monero [dựa trên BIP44 và SECP256K1 hoặc ED25519 SLIP-0010, nó sẽ không tạo ra các địa chỉ tương tự của ví chính thức, nhưng nó hỗ trợ thế hệ con]
  • nano
  • Gần giao thức
  • Tân
  • Chuỗi OKEX [Địa chỉ Ethereum và Cosmos]
  • Unable to learning
  • thẩm định
  • Polkadot [dựa trên BIP44 và ED25519 Slip-0010, như TrustWallet, nó sẽ không tạo ra các địa chỉ tương tự của Polkadot-JS]
  • Đa giác
  • Go to wave
  • Bí mật mạng
  • solana
  • sao thuộc về
  • KHU VỰC
  • Tezos
  • Network Theta
  • Tron
  • vechain
  • bờ vực
  • ZCASH [và mạng thử nghiệm liên quan]
  • Zilliqa

Các đồng tiền được hỗ trợ

  • Acala
  • BIFROST
  • chuỗix
  • Phần mềm
  • Karura
  • Kusama
  • Mặt trăng
  • Dòng mặt trăng
  • Phala Network
  • Mạng plasm
  • sora
  • nhân viên
  • chấm bi
  • Đồng xu cơ chất chung

Đối với những gì liên quan đến Monero, cũng có thể tạo ra các địa chỉ tương tự của ví chính thức mà không cần sử dụng hàm đạo BIP44

Rõ ràng, đối với những đồng tiền hỗ trợ các hợp đồng thông minh [ví dụ. Ethereum, Tron,. ], các key và address được tạo là hợp lệ cho tất cả các mã thông báo liên quan

Cài đặt gói

Đối với đường cong SECP256K1, có thể sử dụng thư viện Coincurve hoặc ECDSA. Coincurve nhanh hơn nhiều vì đây là một trình bao bọc Python cho thư viện SecP256K1 C, trong khi ECDSA là một Python khai thác phát triển thuần túy. Theo mặc định Coincurve sẽ được sử dụng, nhưng có thể vô hiệu hóa nó khi cài đặt.
Theo mặc định, đường cong đồng xu sẽ được sử dụng, nhưng có thể tắt nó khi cài đặt.

To install the package

  • Cài đặt mặc định [Coincurve sẽ được sử dụng cho SECP256K1]

    • Use PIP, from this directory [cục bộ]

        pip install .
      
    • Use PIP, from PYPI

      print "Public Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
               .ChildKey[0 + BIP32_HARDEN] \
               .ChildKey[account_number + BIP32_HARDEN] \
               .ChildKey[0] \
               .ChildKey[i] \
               .PublicKey[]]
      
      print "Private Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
               .ChildKey[0 + BIP32_HARDEN] \
               .ChildKey[account_number + BIP32_HARDEN] \
               .ChildKey[0] \
               .ChildKey[i] \
               .PrivateKey[]]
      
      0
  • Cài đặt thay thế [ECDSA sẽ được sử dụng cho SECP256K1]

    • Use setuptools

      print "Public Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
               .ChildKey[0 + BIP32_HARDEN] \
               .ChildKey[account_number + BIP32_HARDEN] \
               .ChildKey[0] \
               .ChildKey[i] \
               .PublicKey[]]
      
      print "Private Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
               .ChildKey[0 + BIP32_HARDEN] \
               .ChildKey[account_number + BIP32_HARDEN] \
               .ChildKey[0] \
               .ChildKey[i] \
               .PrivateKey[]]
      
      0
    • Use PIP, from this directory [cục bộ]

      print "Public Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
               .ChildKey[0 + BIP32_HARDEN] \
               .ChildKey[account_number + BIP32_HARDEN] \
               .ChildKey[0] \
               .ChildKey[i] \
               .PublicKey[]]
      
      print "Private Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
               .ChildKey[0 + BIP32_HARDEN] \
               .ChildKey[account_number + BIP32_HARDEN] \
               .ChildKey[0] \
               .ChildKey[i] \
               .PrivateKey[]]
      
      1
    • Use PIP, from PYPI

      print "Public Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
               .ChildKey[0 + BIP32_HARDEN] \
               .ChildKey[account_number + BIP32_HARDEN] \
               .ChildKey[0] \
               .ChildKey[i] \
               .PublicKey[]]
      
      print "Private Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
               .ChildKey[0 + BIP32_HARDEN] \
               .ChildKey[account_number + BIP32_HARDEN] \
               .ChildKey[0] \
               .ChildKey[i] \
               .PrivateKey[]]
      
      2

Cài đặt thay thế [ECDSA sẽ được sử dụng cho SECP256K1] nếu bạn đang sử dụng Apple M1, vui lòng đảm bảo cập nhật coincurve lên phiên bản 17. 0. 0 nếu không nó sẽ không hoạt động

Use setuptools

print "Public Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
         .ChildKey[0 + BIP32_HARDEN] \
         .ChildKey[account_number + BIP32_HARDEN] \
         .ChildKey[0] \
         .ChildKey[i] \
         .PublicKey[]]

print "Private Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
         .ChildKey[0 + BIP32_HARDEN] \
         .ChildKey[account_number + BIP32_HARDEN] \
         .ChildKey[0] \
         .ChildKey[i] \
         .PrivateKey[]]
3

Lưu ý. Nếu bạn đang sử dụng Apple M1, vui lòng đảm bảo cập nhật Coincurve lên phiên bản 17. 0. 0 if not it will not active

print "Public Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
         .ChildKey[0 + BIP32_HARDEN] \
         .ChildKey[account_number + BIP32_HARDEN] \
         .ChildKey[0] \
         .ChildKey[i] \
         .PublicKey[]]

print "Private Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
         .ChildKey[0 + BIP32_HARDEN] \
         .ChildKey[account_number + BIP32_HARDEN] \
         .ChildKey[0] \
         .ChildKey[i] \
         .PrivateKey[]]
4

Để chạy các bài kiểm tra

print "Public Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
         .ChildKey[0 + BIP32_HARDEN] \
         .ChildKey[account_number + BIP32_HARDEN] \
         .ChildKey[0] \
         .ChildKey[i] \
         .PublicKey[]]

print "Private Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
         .ChildKey[0 + BIP32_HARDEN] \
         .ChildKey[account_number + BIP32_HARDEN] \
         .ChildKey[0] \
         .ChildKey[i] \
         .PrivateKey[]]
5

Hoặc bạn có thể cài đặt TOX.
Để kiểm tra nhanh.

print "Public Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
         .ChildKey[0 + BIP32_HARDEN] \
         .ChildKey[account_number + BIP32_HARDEN] \
         .ChildKey[0] \
         .ChildKey[i] \
         .PublicKey[]]

print "Private Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
         .ChildKey[0 + BIP32_HARDEN] \
         .ChildKey[account_number + BIP32_HARDEN] \
         .ChildKey[0] \
         .ChildKey[i] \
         .PrivateKey[]]
6

Và sau đó chỉ cần chạy nó

  • BIP-0039
  • Điều này sẽ chạy phạm vi mã bảo hiểm với các phiên bản Python khác nhau và thực hiện phân tích mã và kiểu mã. To check fast
  • Mô - Module description
  • Algorand Mnemonic
  • BIP-0038
  • BIP-0032
  • BIP-0044
  • ghi nhớ điện tử
  • Thuật nhớ Monero
  • Cardano
  • điện tử
  • đồng tiền

Cơ chất

thư viện tiện ích

Tài liệu

Tài liệu thư viện có sẵn tại BIP-UTILS. READTHEDOCS. IO

Ví dụ mã hóa

Đối với một số ví dụ mã hoàn chỉnh [từ tạo khóa đến tạo khóa], hãy tham khảo thư mục ví dụ

  • Mua cho tôi một ly cà phê
  • Bạn biết đấy, tôi là người Ý và tôi thích uống cà phê [đặc biệt là trong khi mã hóa 😃]. Vì vậy, nếu bạn muốn mua cho tôi một cái

BTC

print "Public Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
         .ChildKey[0 + BIP32_HARDEN] \
         .ChildKey[account_number + BIP32_HARDEN] \
         .ChildKey[0] \
         .ChildKey[i] \
         .PublicKey[]]

print "Private Key: " + Base58.check_encode[key.ChildKey[44 + BIP32_HARDEN] \
         .ChildKey[0 + BIP32_HARDEN] \
         .ChildKey[account_number + BIP32_HARDEN] \
         .ChildKey[0] \
         .ChildKey[i] \
         .PrivateKey[]]
8

ERC20/BEP20. in "Khóa công khai. " + Cơ sở58. check_encode[key. ChildKey[44 + BIP32_HARDEN] \. ChildKey[0 + BIP32_HARDEN] \. ChildKey[account_number + BIP32_HARDEN] \. Khóa con[0] \. Khóa con[i] \. PublicKey[]] in "Khóa riêng. " + Cơ sở58. check_encode[key. ChildKey[44 + BIP32_HARDEN] \. ChildKey[0 + BIP32_HARDEN] \. ChildKey[account_number + BIP32_HARDEN] \. Khóa con[0] \. Khóa con[i] \. Khóa riêng[]] 9

Cảm ơn bạn rất nhiều vì sự hỗ trợ của bạn

Làm thế nào tôi có thể nhận được một cụm từ ghi nhớ từ một khóa riêng?

Mô tả. .

Java. // Sử dụng ghi nhớ để phục hồi khóa riêng. Khóa riêng Khóa riêng = Khóa riêng. FromMnemonic [Mnemonic];

JavaScript. // Sử dụng bản ghi đã được khôi phục để khôi phục khóa riêng. const recomedMnemonic = Đang chờ Mnemonic. từ chống đối [Mnemonic.

đi. Đã khôi phụcKey, lỗi. = Hedera. PrivateKeyFrommnemonic [Mnemonic, ""]

Mnemonic có giống như khóa riêng không?

2. Nói cách khác, cụm từ ghi nhớ là một dạng khác của khóa riêng, nó chuyển đổi khóa riêng 64 bit thành một số từ tiếng Anh phổ biến để dễ ghi nhớ hơn. cụm từ ghi nhớ là một dạng khác của khóa riêng tư , nó chuyển đổi khóa riêng tư 64 bit thành một số từ tiếng Anh phổ biến để dễ ghi nhớ hơn.

Python ghi nhớ là gì?

Python-mnemonic Nó bao gồm hai phần. tạo ra mnenomic và chuyển đổi nó thành phân số nhị phân. Các hạt này sau đó có thể được sử dụng để tạo ví dụ xác định bằng BIP-0032 hoặc các phương pháp tương tự. tạo mnenomic và chuyển đổi nó thành hạt giống nhị phân . Hạt giống này sau đó có thể được sử dụng để tạo ví xác định bằng BIP-0032 hoặc các phương pháp tương tự.

Ví BIP32 là gì?

BIP 32 là đề xuất cải tiến tiến trình Bitcoin được đưa ra tiêu chuẩn của ví xác định phân cấp [HD] và các khóa mở rộng cho Bitcoin. BIP 32 là một tiến trình cải tiến đáng kể cho ví bitcoin theo nhiều cách. Đề xuất cải tiến Bitcoin đã giới thiệu tiêu chuẩn ví xác định phân cấp [HD] và khóa mở rộng cho Bitcoin

Chủ Đề