상세 컨텐츠

본문 제목

이더리움 keystore <-> PrivateKey 변환 Node

Block Chain/Ethereum

by 빠기윤 2019. 3. 15. 23:26

본문


  • Private Key -> keystore (암호화)
사용 노드 패키지 : fs , ethereumjs-wallet

const Wallet = require("ethereumjs-wallet")

const fs = require("fs")


const pk = new Buffer.from('PK값', 'hex')
const account = Wallet.fromPrivateKey(pk)
const jsonContent = JSON.stringify(account.toV3('password값')) // keystore 암호화/복호화에 사용 될 패스워드

// 파일 생성
const address = account.getAddress().toString('hex')
const fileName = `UTC--${new Date().toISOString().replace(/[:]/g, '-')}--${address}`
fs.writeFileSync(fileName, jsonContent )



  • keystore -> Private Key (복호화)
사용 노드 패키지 : keythereum

const keythereum = require("keythereum");

var address= "0x...이더리움Address"
var dir = "/home/ethereum/...data경로" //keystore가 있는 data 디렉토리 경로

var keyObject = keythereum.importFromFile(address, dir)
var pk = keythereum.recover('password값', keyObject)

var privateKey = pk.toString('hex')



사용 노드 패키지 : fs , ethereumjs-wallet

const Wallet = require("ethereumjs-wallet")

const fs = require("fs")


const file = "/home/ethereum/data/keystore/UTC--2019......."

const password = "password"


const account = Wallet.fromV3(fs.readFileSync(file), password, true)


const pk = account.getPrivateKey().toString('hex')





keystore란?

이더리움 Private Key을 암호화한 파일입니다. 복호화하기 위해선 암호화 당시 사용한 PassWord를 이용해야합니다. 

암호화 복호화의 원리




댓글 영역