2015-05-01 51 views
0
已知的64個字符的私人/公共密鑰

所以我想創建一個從64個字符,我已經知道使用bitcoinjs與下面的代碼私有/公共密鑰:創建與使用bitcoinjs

key = Bitcoin.ECKey.makeRandom(); 

// Print your private key (in WIF format) 
document.write(key.toWIF()); 
// => Kxr9tQED9H44gCmp6HAdmemAzU3n84H3dGkuWTKvE23JgHMW8gct 

// Print your public key (toString defaults to a Bitcoin address) 
document.write(key.pub.getAddress().toString()); 
// => 14bZ7YWde4KdRb5YN7GYkToz3EHVCvRxkF 

如果我嘗試將「key」設置爲我的64個字符而不是「Bitcoin.ECKey.makeRandom();」它失敗。有沒有一種方法或庫可以讓我使用已知的64個字符來生成wif格式的私鑰和公共地址? 在此先感謝任何可能提供幫助的人。

回答

0

您應該使用fromWIF方法傳遞自己的數據。

從eckey.js

的源代碼
// Static constructors 
ECKey.fromWIF = function(string) { 
    var payload = base58check.decode(string) 
    var compressed = false 

    // Ignore the version byte 
    payload = payload.slice(1) 

    if (payload.length === 33) { 
    assert.strictEqual(payload[32], 0x01, 'Invalid compression flag') 

    // Truncate the compression flag 
    payload = payload.slice(0, -1) 
    compressed = true 
    } 

要從鍵創建WIF請按照https://en.bitcoin.it/wiki/Wallet_import_format 這裏是互動的工具http://gobittest.appspot.com/PrivateKey

0

生成私鑰和公鑰的解決方案:

//public-key 
var address = eckey.getBitcoinAddress().toString(); 

var privateKeyBytesCompressed = privateKeyBytes.slice(0); 
privateKeyBytesCompressed.push(0x01); 
var privateKeyWIFCompressed = new Bitcoin.Address(privateKeyBytesCompressed); 
privateKeyWIFCompressed.version = 0x80; 


//private-key 
privateKeyWIFCompressed = privateKeyWIFCompressed.toString(); 

看看moneyart.info設計精美的paperwallets。