読者です 読者をやめる 読者になる 読者になる

non vorrei lavorare

ブログ名の通りです。javascript three.js mruby rust OCaml golang julialang blender

node.jsで大きな数を扱う

パソコン・インターネット
先週末、息子達を連れて東京大学五月祭に行ってきました。残念がながら母校ではありません。kjunichiです。

2048bitの数が素数でないことを確認するには

RSA公開鍵から素数の積を取り出す方法php使われていたので、node.jsで一部試してみた

bigintモジュールで出来る

事前にGNU MPがインストールされていることが前提

OSX

brew install gmp

Ubuntu

apt-get install libgmp-dev

bigintモジュール本体のインストール

npm install bigint

コード

var bigint = require('bigint');
console.log(bigint('0xB0F977574AB8417031405CF722B2B73C8A6E32F32B42E3A1C44341AC58EA61F4E3CAD5E953426043E4B01319FA78246E29BA2D60C8B0B919DF0D39D12EC1069EA697C72FCBC3D112A26477D8683A75EF6935E3548A7A2532271516CB96DFC097CF30E66FF9A06916764D13AA0847E6A4E355B94EA60FA7A9A21887CA83CB2EFE47A9C2F2354E6E0C418066752040865BD5E29D06A1CAD2BCCAD00D6463F7E3FA95ABC352FFB0B07DA8998DBBFA69C587EAB13499E4D3A20E3749F88FF2A477EAB2610C707E51B17E649C223FD9AABD38227C6E055A725B6A48207987D9214D1129A9DB3B649148EBA0E57C87323E4035600411B487DB6100BE219DDAF6D17889').probPrime());

まとめ

GNU MPというライブラリが多倍長整数を扱う一般的なライブラリの一つの様です。これを使うことで、node.js以外でも様々なスクリプト言語で大きな数が扱えるようです。

関連記事