웹 프론트엔드 JS 튜토리얼 Node.Js에서 비트코인 ​​주소를 구현하는 방법

Node.Js에서 비트코인 ​​주소를 구현하는 방법

Apr 27, 2018 pm 02:27 PM
javascript 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

10. with Base58

Base58은 i, l, 0, o를 제외한 1~9의 영문자로 구성됩니다. Base58은 이전 단계의 결과를 인코딩하고 다음을 얻습니다.

1YbeKoyePe8gxyAYh4E3Qyqb15Nnepmod

이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사에 주목하세요. !

추천 도서:

vue-cli 프로젝트에서 부트스트랩을 사용하는 단계에 대한 자세한 설명

AngularJs가 XSS 공격을 방지하는 방법


AngularJS에서 필터 사용자 정의 필터를 사용하는 사례에 대한 자세한 설명

위 내용은 Node.Js에서 비트코인 ​​주소를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 Dec 17, 2023 pm 02:54 PM

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

Apple 애프터 서비스(Apple 애프터 서비스 지점 주소) Apple 애프터 서비스(Apple 애프터 서비스 지점 주소) Jan 11, 2024 pm 10:30 PM

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: 실시간 모니터링 시스템 구현을 위한 핵심 기술 Dec 17, 2023 pm 05:30 PM

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

메이투안 주소는 어디에서 변경할 수 있나요? Meituan 주소 수정 튜토리얼! 메이투안 주소는 어디에서 변경할 수 있나요? Meituan 주소 수정 튜토리얼! Mar 15, 2024 pm 04:07 PM

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

JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 Dec 17, 2023 pm 12:09 PM

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

라우터 주소 할당 임대란 무엇입니까? 라우터 주소 할당 임대란 무엇입니까? Feb 19, 2024 pm 11:37 PM

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

WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 Dec 17, 2023 am 09:39 AM

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

JavaScript와 WebSocket: 효율적인 실시간 일기예보 시스템 구축 JavaScript와 WebSocket: 효율적인 실시간 일기예보 시스템 구축 Dec 17, 2023 pm 05:13 PM

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

See all articles