Node.Js에서 비트코인 주소를 구현하는 방법
이번에는 Node.Js비트코인 주소 구현 방법과 Node.Js에서 비트코인 주소 구현 시 주의사항에 대해 알려드리겠습니다. 실제 사례를 살펴보겠습니다.
Node.js를 사용하여 IDE는 sublime 3을 사용합니다.
var randomBytes = require('randombytes') var BigInteger = require('bigi') var ecurve = require('ecurve') var crypto = require('crypto') var cs = require('coinstring') var secp256k1 = ecurve.getCurveByName('secp256k1') var randombytes = randomBytes(32).toString('hex') var privateKey = new Buffer(randombytes, 'hex') console.log("私钥:" + privateKey.toString('hex')) var ecparams = ecurve.getCurveByName('secp256k1') var curvePt = ecparams.G.multiply(BigInteger.fromBuffer(privateKey)) var x = curvePt.affineX.toBuffer(32) var y = curvePt.affineY.toBuffer(32) var publicKey = Buffer.concat([new Buffer([0x04]), x, y]) console.log("标准地址:" + publicKey.toString('hex')) //compressed publicKey = curvePt.getEncoded(true) //true forces compressed public key console.log("compressed:" + publicKey.toString('hex')) var sha = crypto.createHash('sha256').update(publicKey).digest() var pubkeyHash = crypto.createHash('rmd160').update(sha).digest() // pubkeyHash of compressed public key console.log("pubkeyHash:" + pubkeyHash.toString('hex')) // address of compressed public key console.log("压缩地址:" + cs.encode(pubkeyHash, 0x0)) //<-- 0x0 is for public addresses //这里还缺失校验和Base58编码 console.log(cs.encode(privateKey, 0x80)) //<--- 0x80 is for private addresses console.log(cs.encode(Buffer.concat([privateKey, new Buffer([0])]), 0x80)) // <-- compressed private address
비트코인 주소 생성
1. 개인 키는 32바이트 숫자입니다. 예:
8F72F6B29E6E225A36B68DFE333C7CE5E55D83249D3D2CD6332671FA445C4 DD3
2. 타원곡선 계산 공개키가 생성된 후, 우리는 타원 곡선 암호화 알고리즘(ECDSA-secp256k1)을 사용하여 개인 키에 해당하는 압축되지 않은 공개 키를 계산합니다. 첫 번째 바이트는 0x04이고 마지막 32바이트는 X 좌표입니다. 32바이트는 Y 좌표입니다: 공개 키 P. 97BA2EF2DECE2ABCA5BE14792
공개 키:
0459DEE66AB619C4A9E215D070052D1AE3A2075E5F58C67516B2E4884A88C79BE 9A5FA8CCD255FB0A7A 75DB985072968C72B036ED97BA2EF2DECE2ABCA5BE14792
3 공개 키
ae9c74647a8c2f50fd832e397e3의 SHA -256 해시 값을 계산합니다. 6dbad05d86db3fe3d959a7c 8a07c1ddda40c6
4 계산합니다. RIPEMD-160 해시값
05f9d05358aab2a28f19910036e67a7295b14aac
5 주소 버전 번호 추가(비트코인 메인넷 0x00)
0005f9d05358aab2a28f 1 9910036e67a7295b14aac
하지만 실제 비트코인에는 검증도 추가됩니다6. SHA-256 해시값 계산사실 거의 똑같습니다. 위에서 최종적으로 생성된 압축주소입니다. 암호.
9f35b0c37977a302512c22f586dd8da4ae1d20399f2ad3f75df23fbc024b4b2d
7. SHA-256 해시 값을 다시 계산합니다
4b4f9bc87616687957db64efaf4efb2c00d1d93d549a0b70b15812936046d0ac
8. 첫 번째 4를 가져옵니다. 이전 단계 결과의 바이트(8자리 16진수)
4b4f9bc8
9. 다섯 번째 단계에서 생성된 압축 주소 끝에 이 4바이트를 추가합니다.
0005f9d05358aab2a28f19910036e67a7295b14aac 4b 4f9bc8
Base58은 i, l, 0, o를 제외한 1~9의 영문자로 구성됩니다. Base58은 이전 단계의 결과를 인코딩하고 다음을 얻습니다.10. with Base58
1YbeKoyePe8gxyAYh4E3Qyqb15Nnepmod
추천 도서:이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사에 주목하세요. !
vue-cli 프로젝트에서 부트스트랩을 사용하는 단계에 대한 자세한 설명
AngularJS에서 필터 사용자 정의 필터를 사용하는 사례에 대한 자세한 설명
위 내용은 Node.Js에서 비트코인 주소를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











WebSocket 및 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 소개: 지속적인 기술 개발로 음성 인식 기술은 인공 지능 분야의 중요한 부분이 되었습니다. WebSocket과 JavaScript를 기반으로 한 온라인 음성 인식 시스템은 낮은 대기 시간, 실시간, 크로스 플랫폼이라는 특징을 갖고 있으며 널리 사용되는 솔루션이 되었습니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법을 소개합니다.

Apple의 공식 A/S 전화번호: Apple의 24시간 서비스 센터 전화번호: 400-666-8800. Apple 휴대폰의 애프터 서비스 전화번호는 400-666-8800입니다. -627-2273. Apple의 고객 서비스 수동 서비스 핫라인은 판매 후 지원을 위한 400-627-2273입니다. 온라인 상점의 경우 400-666-8800이며 유일한 공식 Apple 전화 번호는 400-666-8800입니다. Apple의 고객 서비스 핫라인은 400-666-8800입니다. 이 번호로 전화하여 Apple 제품의 하드웨어, 소프트웨어 및 타사 액세서리에 대해 문의할 수 있습니다. Apple의 수동 고객 서비스는 24시간 서비스를 제공하지 않습니다. 서비스 시간은 오전 9시부터 오후 9시입니다(일요일은 오전 9시부터 오후 9시까지입니다).

WebSocket과 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 서론: 인터넷 기술의 급속한 발전과 함께 실시간 모니터링 시스템이 다양한 분야에서 널리 활용되고 있다. 실시간 모니터링을 구현하는 핵심 기술 중 하나는 WebSocket과 JavaScript의 조합입니다. 이 기사에서는 실시간 모니터링 시스템에서 WebSocket 및 JavaScript의 적용을 소개하고 코드 예제를 제공하며 구현 원칙을 자세히 설명합니다. 1. 웹소켓 기술

1. 메이투안 주소는 어디서 변경할 수 있나요? Meituan 주소 수정 튜토리얼! 방법 (1) 1. 메이투안 마이페이지에 접속 후 설정을 클릭하세요. 2. 개인정보를 선택하세요. 3. 배송지 주소를 클릭하세요. 4. 마지막으로 수정하려는 주소를 선택하고 주소 오른쪽에 있는 펜 아이콘을 클릭한 후 수정하세요. 방법 (2) 1. 메이투안 앱 홈페이지에서 테이크아웃을 클릭한 후, 입력 후 추가 기능을 클릭합니다. 2. 더보기 인터페이스에서 주소 관리를 클릭하세요. 3. 내 배송 주소 인터페이스에서 편집을 선택합니다. 4. 필요에 따라 하나씩 수정하고 마지막으로 클릭하여 주소를 저장하세요.

JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 소개: 인터넷의 대중화와 기술의 발전으로 점점 더 많은 레스토랑에서 온라인 주문 서비스를 제공하기 시작했습니다. 실시간 온라인 주문 시스템을 구현하기 위해 JavaScript 및 WebSocket 기술을 사용할 수 있습니다. WebSocket은 TCP 프로토콜을 기반으로 하는 전이중 통신 프로토콜로 클라이언트와 서버 간의 실시간 양방향 통신을 실현할 수 있습니다. 실시간 온라인 주문 시스템에서는 사용자가 요리를 선택하고 주문을 하면

라우터는 네트워크에서 매우 중요한 장치 중 하나로 여러 장치를 연결하고 데이터를 전송하는 역할을 합니다. 라우터 구성에서 중요한 매개변수는 주소 임대 시간(AddressLeaseTime)이며, 이는 네트워크 연결 및 관리에 매우 중요합니다. 이번 글에서는 라우터 주소 임대의 의미와 기능에 대해 자세히 소개하겠습니다. 주소 임대 기간은 라우터가 연결된 장치에 IP 주소를 사용하도록 제공하는 기간을 나타냅니다. 각 장치가 라우터에 연결된 후 자동으로 임시 IP 주소를 얻습니다. 이 주소는 일정 기간 동안 지속됩니다.

WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 오늘날의 디지털 시대에는 점점 더 많은 기업과 서비스에서 온라인 예약 기능을 제공해야 합니다. 효율적인 실시간 온라인 예약 시스템을 구현하는 것이 중요합니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. WebSocket이란 무엇입니까? WebSocket은 단일 TCP 연결의 전이중 방식입니다.

JavaScript 및 WebSocket: 효율적인 실시간 일기 예보 시스템 구축 소개: 오늘날 일기 예보의 정확성은 일상 생활과 의사 결정에 매우 중요합니다. 기술이 발전함에 따라 우리는 날씨 데이터를 실시간으로 획득함으로써 보다 정확하고 신뢰할 수 있는 일기예보를 제공할 수 있습니다. 이 기사에서는 JavaScript 및 WebSocket 기술을 사용하여 효율적인 실시간 일기 예보 시스템을 구축하는 방법을 알아봅니다. 이 문서에서는 특정 코드 예제를 통해 구현 프로세스를 보여줍니다. 우리
