法人番号の検査用数字をJSで計算する — mod 9の0と9の死角 法人番号13桁の先頭1桁は、12桁の基礎番号から「9 - (重み1と2の積和 mod 9)」で決まる。国税庁の算式をNode.jsで再現して国税庁自身の番号で検算し、0と9の書き換え・入れ替えを見逃す理由も確かめる。 2026-10-08 プログラミング #JavaScript #Node.js #チェックディジット #法人番号
TOTPの鍵がBase32で32文字・=なしになる理由をNode.jsで確かめる 2段階認証の共有鍵が英大文字と2〜7の32文字・=なしになるのは、20バイト=160ビットが5ビット区切りで割り切れるから。Base32の符号化を追い、RFC 6238のテストベクタでTOTPを計算して確かめる。 2026-10-07 プログラミング #Node.js #Base32 #TOTP #RFC 4648
漢数字⇔数字変換をBigIntで書く 9999兆はNumberで壊れる 漢数字変換ツールが16桁(9999兆)まで正しく返せるのは、桁をNumberでなくBigIntで積んでいるから。一万千と二〇二六の両記法を1ループで読む構文解析と、大字(壱弐参拾)の出し分けを、Node.jsで動くコードで示す。 2026-10-06 プログラミング #JavaScript #BigInt #漢数字 #文字列処理
Citrix CVE-2026-88776/88777|前提条件付き9.8の読み方と固定版の判定 NetScaler の CVE-2026-88776 / 88777 は NVD 9.8・Citrix 8.8 で構成の前提条件が付く。固定版が系統ごとに別の番号列を持つので、稼働中の版数が固定済みかを機械で判定するコードを動かす。 2026-10-05 セキュリティ #Node.js #CVE #脆弱性対応 #CVSS #Citrix #NetScaler #パッチ管理 #バージョン比較 #CWE-119
Node 24のIntlは明治元年を1868年9月8日から始める|CLDR 47と48の差 Intl.DateTimeFormatの和暦は明治の開始日を1868-09-08としている。旧暦の日付をそのまま西暦に読んだ値で、CLDR 48で1868-10-23に直った。手元のNodeの値を確かめ、改元日を自前の表で持つ和暦ツールの判定と並べる。 2026-10-05 プログラミング #Node.js #Intl #CLDR #ICU #和暦
RSS収集の既出判定がhttp://の古いidに負けて同じ記事を52件二度貯めた 地域メディアのRSSを集める収集器が、同じ記事を52件二度貯めた。既出判定の鍵が古い記録のhttp://とフィードのhttps://で食い違ったのが原因。idとurlの両方を鍵にして塞いだ手順と、再発を機械で止めるテストを動くコードで示す。 2026-10-05 プログラミング #RSS #Node.js #重複排除 #URL正規化
メール件名の=?UTF-8?B?を75文字で分割するとき文字を切らない方法 メール件名のencoded-wordは1個75文字まで。バイト数で機械的に切るとUTF-8の文字が割れて受信側で化ける。RFC 2047の規則と、後続バイトの手前で切る実装をNode.jsとPythonの実測で確かめる。 2026-10-04 プログラミング #Node.js #RFC 2047 #MIME #UTF-8
Basic認証のbtoaが日本語で落ちる理由とRFC 7617のUTF-8 Basic認証の値をbtoaで作ると日本語のパスワードでInvalidCharacterErrorになる。RFC 7617のcharsetとNFC正規化、ユーザー名のコロンが最初の区切りになる規則をNode.jsとcurlの実測で確かめる。 2026-10-02 プログラミング #JavaScript #Basic認証 #RFC 7617 #curl
CRC-16の値が合わない — 5つのパラメータで変種を特定する 同じ「CRC-16」でも実装ごとに値が違うのは、多項式・初期値・ビット反転・最終XORの組み合わせが違うから。123456789の検査値で実装を確かめ、受信フレームから変種とバイト順を当てる手順をNode.jsで試す。 2026-10-01 プログラミング #Python #Node.js #CRC #Modbus
IPv6アドレスをRFC 5952で正規化 — ::の位置とIPv4射影 同じIPv6アドレスが何通りにも書ける問題を、RFC 5952の規則で1つに揃える。::をどこに置くか、0が1グループだけのとき、IPv4射影アドレスの10進表記を、Node.jsのURLパーサ・Python・自作関数の実測で比べる。 2026-09-30 プログラミング #JavaScript #Node.js #IPv6 #RFC 5952