2023年 5月 の投稿一覧

【Node.js】自作したLocalTimeモジュール

Node.jsでDateコンストラクを使ってdateオブジェクトを生成するときに任意のタイムゾーンを設定できない。
つまり、Dateコンストラクを使ってdateオブジェクトを生成する環境によって日時が異なることを意味する。

そこで今回、どんな環境で実行しても任意で設定したタイムゾーンの現地時間を表示するLocalTimeモジュールを作る。

続きを読む

【C言語】int型の範囲の整数

C言語のint型は32ビット(4バイト)の符号付き整数を表現するために使用される。符号を考慮すると、int型は-2,147,483,648から2,147,483,647までの範囲の整数を表現できる
2,147,483,647 = 21億4748万3647
-2,147,483,648 = 21億4748万3647
2進数「00000000000000000000000000000000」(32桁)は10進数「0」である。
2進数「00000000000000000000000000000001」(32桁)は10進数「1」である。
~中略~
2進数「01111111111111111111111111111111」(32桁)は10進数「2,147,483,647」である。
2進数「10000000000000000000000000000000」(32桁)は10進数「-2,147,483,648」である。
2進数「10000000000000000000000000000001」(32桁)は10進数「-2,147,483,647」である。
2進数「10000000000000000000000000000002」(32桁)は10進数「-2,147,483,646」である。
~中略~
2進数「11111111111111111111111111111101」(32桁)は10進数「-3」である。
2進数「11111111111111111111111111111110」(32桁)は10進数「-2」である。
2進数「11111111111111111111111111111111」(32桁)は10進数「-1」である。

それと、int型は実装依存だからコンパイラでint型で表現できる数値が違う。
「Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland」ではint型は-2,147,483,648から2,147,483,647までの範囲の整数を表現している。

続きを読む

サーバー証明書の中身を見る(windows10)

任天堂ホームページ (nintendo.co.jp) ExternalLinkのサーバー証明書の中身を見てみる。
windows10において、Git Bash上でコマンドを実行してサーバー証明書の中身を見た。
使用したGit Bashのバージョンは「git version 2.40.0.windows.1」である。

RFC3280では、電子証明書はX.509ver3の形式が用いられると書いてある。
任天堂のX.509はVersion: 3 (0x2)となっているな。
X509v3 CRL Distribution Points(CRLの配布ポイント)が設定されている。
X509v3 CRL Distribution Points(CRLの配布ポイント)はX.509証明書の拡張フィールドの1つである。
X509v3 CRL Distribution Points拡張フィールドは、CRLがどこで入手可能かを示すために使用される。このフィールドには、CRLのダウンロードに使用するURLやファイルパスなどの情報が含まれる。

続きを読む

【C言語】ユークリッドの互除法(基本情報技術者試験 平成31年度 春 午前 問7)

C言語でユークリッドの互除法で最大公約数を求めるプログラムを作る。
ユークリッドの互除法は英語では「Euclidean algorithm」と表記される。
最大公約数は英語では「G.C.D(Greatest Common Divisor)」あるいは、「G.C.M (Greatest Common Measure)」である。

環境
windows10(64bit)
Borland C++ 5.5.1 for Win32

次のコードをEuclidean.cとする。

続きを読む

証明書失効リスト(CRL)

証明書失効リスト(Certificate Revocation List)

CRL(証明書失効リスト)とは – 意味をわかりやすく – IT用語辞典 e-Words ExternalLink ここから-
CRLとは、何らかの理由で有効期限前に失効させられたデジタル証明書(公開鍵証明書)のリスト。証明書の発行元の認証局(CA)が管理・公開しており、定期的に更新される。
CRL(証明書失効リスト)とは – 意味をわかりやすく – IT用語辞典 e-Words ExternalLink ここまで-

続きを読む

ルート証明書

自己署名証明書とは – 意味をわかりやすく – IT用語辞典 e-Words ExternalLinkより ここから
ルート認証局はそれより上位の認証局が存在しないため、公開
鍵を自身の秘密鍵で署名した自己署名証明書をルート証明書と
する。
自己署名証明書とは – 意味をわかりやすく – IT用語辞典 e-Words ExternalLinkより ここまで

と書いてあった。
しかし、公開鍵に対して署名をするのではなくCSRを元に作成されたサーバー証明書に対して署名をする。

正しく書くと、「ルート認証局はCSR(証明書署名要求)に含まれる公開鍵およびサブジェクト情報を使用して、ルート証明書を作成します。そのルート証明書に対して秘密鍵で署名を行う。」である。

CSR(証明書署名要求)には公開鍵とサブジェクト情報が含まれており、認証局は公開鍵とサブジェクト情報を使用して、サーバー証明書を作成する。そして、その作成されたサーバー証明書に対しては認証局の秘密鍵で署名が行われる。認証局がCSR自体に署名を行うのではなく、CSRを元に作成されたサーバー証明書に署名が行われるのが正しい流れである。

続きを読む

モジュール結合度について

モジュール同士の関連性の度合いをモジュール結合度と言う。
一般に、モジュール結合度が弱いほど個々のモジュールの独立度が高く、保守しやすくなる特徴があります。

モジュール結合度が弱い順から並べる。
データ結合 < スタンプ結合 < 制御結合 < 外部結合 < 共通結合 < 内容結合

覚え方は結合度が弱い順に「結合デス制御外部共通内容」と覚える。

続きを読む