HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2020/01/11

OpenSSLコマンドを使って RSA暗号処理する方法 OpenSSLコマンドを使って RSA暗号処理する方法

(OpenSSLコマンドで公開鍵暗号方式の RSA暗号処理する方法を解説)

Tags: [Windows], [無人インストール]




● Android Java言語で RSA暗号処理する方法、OpenSSLとの連携方法

2020/01/11
Java言語で RSA暗号処理する方法、OpenSSLとの連携方法、Androidにも対応
Java言語で RSA暗号処理する方法、OpenSSLとの連携方法、Androidにも対応

  Java言語で公開鍵暗号方式の RSA暗号処理と OpenSSLと連携する方法を解説


● Microsoft Visual Studio 2013の C# .NETで RSA暗号処理する方法、OpenSSLとの連携方法

2020/01/11
Visual Studio 2013の .NET C#で RSA暗号処理する方法、OpenSSLとの連携方法
Visual Studio 2013の .NET C#で RSA暗号処理する方法、OpenSSLとの連携方法

  C# .NETで公開鍵暗号方式の RSA暗号処理と OpenSSLと連携する方法を解説


● RSA公開鍵暗号方式とは?

 RSAは公開鍵暗号方式で「公開鍵」「秘密鍵」の2種類のペアの鍵を用います。暗号と復号の鍵が異なるので「非対称暗号方式」とも言います。

 「公開鍵」=公開しても良い鍵
 「秘密鍵」=秘密にする鍵

 暗号と復号の鍵が同じものは「対称暗号方式」と言います。

 RSA暗号の鍵のビット長は現在は 2048bit以上が推奨されています。
 1024bit長の鍵は現在では既に「解読」されます。
 (現在のコンピュータの処理能力で短時間で演算処理して「秘密鍵」を求める事ができる)

 2048bit長の鍵の推奨される利用期間は 2030年末までとされています。
 (少なくとも暗号アルゴリズムの安全性が確保されると見込まれる期間)
 (現在のコンピュータの進化では 2050年頃には 2048bit長の RSA鍵が危殆化すると予想されています)

 現在が 2020年で、2030年までは 10年しかないのと、昨今のコンピュータの進化速度から 2048bit長でも不安があります。

 このぶんだと先を見越して 3072bit位を使用しておくのが「安全」と思います。
 ただし、ビット長が増加すると暗号化・復号化の処理の負荷が増加します。
 また、効率的な演算手法が「発見」された場合、そもそも RSA暗号方式そのものが「無力」になる可能性もあります。

● 各種暗号、ハッシュ関数の 2030年問題の一覧表

 2031年からは Security Strength 128以上が必須となる。
 (Security Strength 128未満は古いシステム用に「使用だけ」は許可 Legacy use)

NIST Special Publication 800-57 Recommendation for Key Management
Page 52 Table 2: Comparable strengths
Page 54 Table 3: Hash functions that can be used to provide the targeted security strengths
Page 55 Table 4: Security-strength time frames
 より引用して合成して作成

暗号強度公開鍵暗号
RSA暗号方式
鍵ビット長
公開鍵暗号
ECDSA暗号方式
(楕円曲線暗号)
鍵ビット長
共通鍵暗号
AES暗号方式
鍵ビット長
SHAハッシュ関数HMAC 暗号ハッシュ関数2030年末まで2031年以降
80以下
(112未満)
10241602TDEASHA-1--×
Legacy use
×
Legacy use
11220482243TDEASHA-224、SHA-512/224--×
Legacy use
1283072256AES-128SHA-256、SHA-512/256SHA-1
1927680384AES-192SHA-384SHA-224、SHA-512/224
25615360512AES-256SHA-512SHA-256、SHA-512/256

● EMVCoの資料
EMV SWG NH90 Notice Bulletin No. 23 July 2019 EMVCo Annual RSA Key Lengths Assessment
 より引用
RSA暗号方式
鍵ビット長
利用期限特定用途での延長
1408-bit2024年末まで2025年末まで
1984-bit2029年末まで--

● CRYPTREC Report 2016
CRYPTREC Report 2016
CRYPTREC Report 2016の公開 平成29年6月30日

 付録 A.3 予測図の更新(素因数分解問題及び楕円曲線上の離散対数問題の困難性)より引用

・CRYPTREC Report 2016 付録 A.3 予測図の更新(素因数分解問題及び楕円曲線上の離散対数問題の困難性)
CRYPTREC Report 2016 付録 A.3 予測図の更新(素因数分解問題及び楕円曲線上の離散対数問題の困難性)




● 暗号用語

 平文 = 元の文
 暗号文 = 暗号化した文
 暗号化 = 平文を暗号化して暗号文にする事
 復号化 = 暗号文を解読して平文に戻す事


● RSA公開鍵暗号方式の基本的な使い方

 その1:「送信者」が「受信者」だけに「メッセージ」を届ける場合
 ・「受信者」は「公開鍵」「秘密鍵」のペアの RSA鍵を生成する
 ・「送信者」は「受信者」から「公開鍵」を受け取る
 ・「送信者」はその「公開鍵」を使って「メッセージ」を暗号化する
 ・「送信者」は「暗号化メッセージ」を「受信者」に送信する
 ・「受信者」は「暗号化メッセージ」を「自分の秘密鍵」で復号化する
 ・「受信者」は「復号化メッセージ」を読む

 その2:「送信者」が自分である事を「受信者」に「認証・証明」したい場合
 ・「送信者」は「公開鍵」「秘密鍵」のペアの RSA鍵を生成する
 ・「送信者」は自分の「秘密鍵」を使って「メッセージ」を暗号化する
 ・「送信者」は「暗号化メッセージ」を「受信者」に送信する
 ・「受信者」は「暗号化メッセージ」を送信者の「公開鍵」で復号化する
 ・正常に復号化できれば「送信者」本人が送信した「メッセージ」である事が「認証・証明」できる

使い方目的暗号化復号化補足
その1メッセージの秘匿送信「受信者」の「公開鍵」「受信者」の「秘密鍵」受信者以外は暗号化メッセージを解読できない
その2自分である事の認証・証明「送信者」の「秘密鍵」「送信者」の「公開鍵」送信者以外は暗号化メッセージを作れない


● RSA公開鍵暗号方式の基本的な暗号強度の考え

 ある素数pとq、p*q=nの3個の数値がある場合に、
 ・p*qを演算してnを求めるのは簡単
 ・nの値から素数のpとqを求めるのは困難(pとqは素数である事)

 RSA暗号の暗号解読の難易度は、素数同士の積を求める事は(掛け算するだけだから)簡単であるが、逆に素数同士の積の値から素因数分解を求めるのが難しいと言う一方向性の数学的性質を利用しています。

 この場合、
 ・pとqが秘密鍵
 ・nが公開鍵
 になります。

RSA暗号 - Wikipedia

 面白記事
世界最小のRSA鍵ペアは何bitか
続・世界最小のRSA鍵ペアは何bitか

●楕円曲線暗号 Elliptic Curve Cryptography ECC

 楕円曲線を利用した暗号方式の総称で、RSAと同様の「公開鍵暗号」も実装できる。
 楕円曲線上の離散対数問題 (EC-DLP) の困難性を安全性の根拠とする暗号。
 楕円曲線暗号で有名なものとして ECDSAや ECDH等がある。

 RSA暗号などと比べた場合に同レベルの安全性をより短い鍵で実現でき、処理速度も速いのが利点。

楕円曲線暗号


● 公開鍵暗号は「ゴルゴ13」のデューク・トウゴウも関係しています。「最終暗号」

 ゴルゴ13 「最終暗号」

 数学者の佐久シゲルが解読不可能な暗号方式(最終暗号)を開発し、一般に公開しようとするのをアメリカの NSA(国家安全保障局)が妨害すると言うお話。

 なぜ妨害するかと言うと「解読不可能な暗号方式」で通信を行なわれると NSAが傍受・盗聴して通信内容を監視する事ができなくなるから。

 ゴルゴ13 デューク・トウゴウは佐久シゲルの学会での講演を聞き、その内容の意味(最終暗号の理論)を理解し、その最終暗号の開発が無事に完成する様に、また、NSAからの妨害工作から佐久シゲルを守るべくボディガードと支援を申し出る事にした。。。

 なお、既に各方面からツッコミが入っていますが「最終暗号」作中の「平方根を求める事は難しくても、~」の部分は誤りで、平方根を求めるのは「開平法」で手計算でも(頑張れば)できます。

 佐久シゲルのモデル 小平邦彦
小平邦彦
 小平次元、小平消滅定理、小平・スペンサー理論等に名を残している。

 NSA(アメリカ国家安全保障局)による市販ソフトウェアに仕込まれたバックドア(裏口)
NSA's Backdoor Key from Lotus-Notes
 "1984" O=MiniTruth CN=Big Brother


ゴルゴ13 (Volume108) 最終暗号 (SPコミックスコンパクト) (日本語) コミック - 2007/9/28
ASIN: 4845830612

ゴルゴ13 (129) (SPコミックス) (日本語) コミック - 2003/7/5
ASIN: 4845801299

ゴルゴ13 THE LAST CODE〜最終暗号〜 (My first big) (日本語) ムック - 2015/8/7
ASIN: 4091198481

暗号解読(上) (新潮文庫) (日本語) 文庫 - 2007/6/28
ASIN: 410215972X


● Windowsで OpenSSLを使用して RSA暗号の暗号化、復号化をコマンドラインで実行する方法
Windows用の OpenSSLの実行ファイルの一覧

Download Win32/Win64 OpenSSL
 Win32 OpenSSL v1.1.1d
 Win32OpenSSL-1_1_1d.exe

PEM形式 = BASE64 + ヘッダ情報 + フッタ情報
DER形式 = バイナリ(PEM形式の BASE64部分と同じ内容)
msblob形式 = Windowsプログラムと相性が良い

DER形式のバイナリ部分は ASN.1形式で符号化されています。
Abstract Syntax Notation One - ウィキペディア


rem 鍵のビット長は 2048 bit長
rem 2048/8 - (3+8) = 245 bytes
rem PEM形式で RSAの「秘密鍵」と「公開鍵」を生成
openssl genrsa -out private-key.pem 2048

rem 「公開鍵」は「秘密鍵」を元にして作成
openssl rsa -in private-key.pem -pubout -out public-key.pem

rem DER形式で RSAの「秘密鍵」と「公開鍵」を生成
openssl genrsa -out private-key.der -outform der 2048
openssl rsa -in private-key.der -inform DER -pubout -out public-key.der -outform DER

rem 「秘密鍵」で PEM形式を DER形式に変換
openssl rsa -in private-key.pem -out private-key.der -outform DER

rem PEM形式の「秘密鍵」から DER形式の「公開鍵」を作成
openssl rsa -in private-key.pem -pubout -out public-key.der -outform DER

rem 「公開鍵」で PEM形式を DER形式に変換
openssl rsa -pubin -in public-key.pem -pubout -out public-key.der -outform DER

rem PEM形式の「秘密鍵」から msblob形式の「秘密鍵」を変換
rem Visual Studio Visual C C#で使う MSBLOB形式 PRIVATEKEYBLOB
openssl rsa -in private-key.pem -out private-key.msblob -outform msblob

rem PEM形式の「秘密鍵」から msblob形式の「公開鍵」を変換
rem Visual Studio Visual C C#で使う MSBLOB形式 PUBLICKEYBLOB
openssl rsa -in private-key.pem -pubout -out public-key.msblob -outform msblob

rem PEM形式の「秘密鍵」から msblob形式の「公開鍵」を作成
rem Visual Studio Visual C C#で使う MSBLOB形式 PUBLICKEYBLOB
openssl rsa -pubin -in public-key.pem -pubout -out public-key.msblob -outform msblob

PKCS#1 v1.5 Padding方式の場合の暗号化できるデータ長の最大バイト数 RSA/ECB/PKCS1Padding
(暗号化できるデータ長の最大バイト数) = (鍵長ビット)/ 8bit - 8 - 3
 3は PKCS#1 v1.5 Paddingの固定バイト
 8は PKCS#1 v1.5 Paddingの乱数生成の 8バイト
 ※ PKCS#1 v1.5 Padding方式は元の平文が同じでも暗号化したデータは上記の乱数生成の関係で毎回異なります。

鍵長が 2048bitの場合は 2048bit / 8bit = 256bytes
256bytes - 8bytes - 3bytes = 245bytes
となり、暗号化できるデータ長は最大で 245bytesとなります。
245bytes以上のデータを暗号化したい場合は 245bytes毎に分割する必要が有ります。

test_245_bytes.txt 245 bytes
test_246_bytes.txt 246 bytes

rem 「公開鍵」を使って平文を暗号化
openssl rsautl -encrypt -pubin -inkey public-key.pem -in test_245_bytes.txt -out test_245_bytes.enc
245 bytesなのでエラーが出ないで暗号化処理ができる

rem 「公開鍵」を使って平文を暗号化 245バイトを超えているので暗号化できない
openssl rsautl -encrypt -pubin -inkey public-key.pem -in test_246_bytes.txt -out test_246_bytes.enc
RSA operation error
9276:error:0406D06E:rsa routines:RSA_padding_add_PKCS1_type_2:data too large for key size:crypto\rsa\rsa_pk1.c:125:
246 bytesなのでエラーが出て暗号化処理ができない

rem 「秘密鍵」を使って暗号文を復号化
openssl rsautl -decrypt -inkey private-key.pem -in test_245_bytes.enc -out decode_test_245_bytes.txt
245 bytesの暗号化データをエラーが出ないで復号化処理ができる
Padding無しの RAWの場合は RSAの鍵長が 2048bitの場合は 2048bit / 8bit = 256bytes となり、暗号化できるデータ長は最大で 256bytesとなります。
※ 実装依存で、最大が 255 bytesの場合も有る

test_256_bytes.txt 256 bytes
test_257_bytes.txt 257 bytes

rem rawの場合 RSA/ECB/NoPadding
rem 「公開鍵」を使って平文を暗号化
openssl rsautl -encrypt -pubin -inkey public-key.pem -in test_256_bytes.txt -out test_256_bytes.enc -raw
256 bytesなのでエラーが出ないで暗号化処理ができる

rem 「公開鍵」を使って平文を暗号化 256バイトを超えているので暗号化できない
openssl rsautl -encrypt -pubin -inkey public-key.pem -in test_257_bytes.txt -out test_257_bytes.enc -raw
RSA operation error
11468:error:0406B06E:rsa routines:RSA_padding_add_none:data too large for key size:crypto\rsa\rsa_none.c:18:
257 bytesなのでエラーが出て暗号化処理ができない

rem 「秘密鍵」を使って暗号文を復号化
openssl rsautl -decrypt -inkey private-key.pem -in test_256_bytes.enc -out decode_test_256_bytes.txt -raw
256 bytesの暗号化データをエラーが出ないで復号化処理ができる

● PKCS#1v2.0 Padding方式(RSA-OAEP)の場合の暗号化できるデータ長の最大バイト数 RFC2437
EM := maskedSeed || maskedDB
ハッシュ形式ハッシュサイズRSA-OAEPでの最大バイト長
(鍵長 = 2048bit = 256bytes)
SHA-120バイト256 - 2 - 20*2 = 214RSA/ECB/OAEPWithSHA1AndMGF1Padding
SHA-25632バイト256 - 2 - 32*2 = 190RSA/ECB/OAEPWithSHA256AndMGF1Padding

● PKCS#1v2.1 Padding方式(RSA-OAEP)の場合の暗号化できるデータ長の最大バイト数? RFC3447
EM := 0x00 || maskedSeed || maskedDB
test_214_bytes.txt 214 bytes
test_215_bytes.txt 215 bytes

openssl -oaepの場合は PKCS#1v2.0 Padding方式 SHA-1を使用している。

rem 「公開鍵」を使って平文を暗号化
openssl rsautl -encrypt -oaep -pubin -inkey public-key.pem -in test_214_bytes.txt -out test_214_bytes.enc
214 bytesなのでエラーが出ないで暗号化処理ができる

rem 「公開鍵」を使って平文を暗号化 214バイトを超えているので暗号化できない
openssl rsautl -encrypt -oaep -pubin -inkey public-key.pem -in test_215_bytes.txt -out test_215_bytes.enc
RSA operation error
7872:error:0409A06E:rsa routines:RSA_padding_add_PKCS1_OAEP_mgf1:data too large for key size:crypto\rsa\rsa_oaep.c:62:
215 bytesなのでエラーが出て暗号化処理ができない


●OpenSSLで RSAの「公開鍵」を使って復号化をする方法 -sign -verify

 OpenSSLでは、RSAの「公開鍵」を使って -decryptで復号化(暗号の解除)ができません。
 A private key is needed for this operationでエラーになります。
 「この操作(decrypt 復号化)にはプライベートキー(秘密鍵)が必要」

rem 「秘密鍵」を使って平文を暗号化
openssl rsautl -encrypt ^
  -inkey private-key.pem ^
  -in test_245_bytes.txt -out test_245_bytes.enc

rem 「公開鍵」を使って暗号文を復号化
openssl rsautl -decrypt ^
  -pubin -inkey public-key.pem ^
  -in test_245_bytes.enc -out decode_test_245_bytes.txt
A private key is needed for this operation

 上記の「RSA公開鍵暗号方式の基本的な使い方」の「その2」の使い方をする場合は -signと -verifyを使います。

rem 「秘密鍵」を使って平文を暗号化 -sign
openssl rsautl -sign ^
  -inkey private-key.pem ^
  -in test_245_bytes.txt -out test_245_bytes.enc

rem 「公開鍵」を使って暗号文を復号化 -verify
openssl rsautl -verify ^
  -inkey public-key.pem -pubin ^
  -in  test_245_bytes.enc -out decode_test_245_bytes.txt

type decode_test_245_bytes.txt
123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789:123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789:123456789/123456789/123456789/123456789/12345

rem 「秘密鍵」を使って平文を暗号化 -sign
246 bytesなのでエラーが出て暗号化処理ができない
openssl rsautl -sign ^
  -inkey private-key.pem ^
  -in test_246_bytes.txt -out test_245_bytes.enc
RSA operation error
6684:error:0406C06E:rsa routines:RSA_padding_add_PKCS1_type_1:data too large for key size:crypto\rsa\rsa_pk1.c:26:


●サイズの大きいファイルを RSA暗号方式で暗号化、複合化する方法
単純に「ブロック単位に区切る」方法
ブロック単位に区切って暗号・復号の処理を行なう。

"Bad Dada" When Call RSACryptoServiceProvider.Decrypt Method on Some Machine



暗号処理にサイズ制限の無い共通鍵を使って全体を暗号化する方法(SMIME S/MIME方式)
送信側
1) 本文を「共通鍵」で暗号化する
2) 「共通鍵」を RSAの「公開鍵」で RSA方式で暗号化する

受信側
3) 暗号化した「共通鍵」を RSAの「秘密鍵」で RSA方式で復号化する
4) 本文を「共通鍵」で復号化する
※ 受信側から送信側に対してRSAの「公開鍵」を送信する必要がある


● PEM形式の「公開鍵」 PUBLIC
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo0+GLgT29D/RlYFj0mKB
wVzBloOSWXJy5hbPDpRVGlFVJf41LJ0vTFSUB2M7xbWikBCkIyE/vXU5oKahyCPq
.. 省略 ..
eqrns6QW5PYR6koIxnaYQhiKr5e+jNhl6L6MBjIQPKfyjN2pX+8qslP8ivigvYuT
adgPycin7mVy1O8RfVuBGWJclPRIR1vaY3SNoYaqNZd9Lf+xUVRl+OkkuycmpzAF
7wIDAQAB
-----END PUBLIC KEY-----
● PEM形式の「秘密鍵」 PRIVATE
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA1UoUayRIbXJG+XmKZT+H0+qCX5MGVl4l3QSVQpONib3PB53r
XOVHtHCFKM5JJs/IRdUbFc5hejF7Aovvzj8w+G6R902RZ0SJxcrHMKO9gnlldrSX
.. 省略 ..
Ua7URdl2NSvXIhw0roBb1cSv7NQH883k3KbrCi04h57FzzryQkNK43mu/WmGVeMX
MqNZF89IMde2SMlg3RWC2Kr+b3BoWyHCjOhlJncup+MpNWLONcSF4Q==
-----END RSA PRIVATE KEY-----


● OpenSSL -inform -outform -keyform

opt.c

static OPT_PAIR formats[] = {
    {"PEM/DER", OPT_FMT_PEMDER},
    {"pkcs12", OPT_FMT_PKCS12},
    {"smime", OPT_FMT_SMIME},
    {"engine", OPT_FMT_ENGINE},
    {"msblob", OPT_FMT_MSBLOB},
    {"netscape", OPT_FMT_NETSCAPE},
    {"nss", OPT_FMT_NSS},
    {"text", OPT_FMT_TEXT},
    {"http", OPT_FMT_HTTP},
    {"pvk", OPT_FMT_PVK},
};


● ASN.1 JavaScript decoder

 PEM形式や DER形式のファイルをデコード(人が見て理解できる書式)します。

ASN.1 JavaScript decoder

・ASN.1 JavaScript decoder PEM形式や DER形式のファイルをデコード(人が見て理解できる書式)します
ASN.1 JavaScript decoder PEM形式や DER形式のファイルをデコード(人が見て理解できる書式)します





Tags: [Windows], [無人インストール]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

Java言語で RSA暗号処理する方法、OpenSSLとの連携方法、Androidにも対応
Java言語で RSA暗号処理する方法、OpenSSLとの連携方法、Androidにも対応

  Java言語で公開鍵暗号方式の RSA暗号処理と OpenSSLと連携する方法を解説

Visual Studio 2013の .NET C#で RSA暗号処理する方法、OpenSSLとの連携方法
Visual Studio 2013の .NET C#で RSA暗号処理する方法、OpenSSLとの連携方法

  C# .NETで公開鍵暗号方式の RSA暗号処理と OpenSSLと連携する方法を解説

PHP言語で RSA暗号処理する方法、OpenSSLとの連携方法
PHP言語で RSA暗号処理する方法、OpenSSLとの連携方法

  PHP言語で 公開鍵暗号方式の RSA暗号処理と OpenSSLと連携する方法を解説

GO言語で RSA暗号処理する方法、OpenSSLとの連携方法
GO言語で RSA暗号処理する方法、OpenSSLとの連携方法

  GO言語で 公開鍵暗号方式の RSA暗号処理と OpenSSLと連携する方法を解説

Visual Studio 2013の C# .NETで Hash計算処理をする方法のサンプルプログラム
Visual Studio 2013の C# .NETで Hash計算処理をする方法のサンプルプログラム

  HashAlgorithm.TransformBlockを使用すると巨大ファイル等でハッシュ計算の進行状況の進捗を取得できます

Visual Studio 2013の .NET C#で UTF-8対応 QRコード生成・読取アプリを作成する方法、ZXing.Net QR Codeライブラリを使用
Visual Studio 2013の .NET C#で UTF-8対応 QRコード生成・読取アプリを作成する方法、ZXing.Net QR Codeライブラリを使用

  .NETで UTF-8対応 QRコード作成・解読アプリを作成、ILMergeで dllを exeに合体する方法

C# .NETで ZIPファイル解凍ツール UnZipをソースリスト 1行で自作する方法、Windows .NET専用
C# .NETで ZIPファイル解凍ツール UnZipをソースリスト 1行で自作する方法、Windows .NET専用

  Visual Studio 2013の C# .NET 4.5で ZipFile.ExtractToDirectoryを使い、UnZip解凍ツールを作成

Visual Studio 2013に Windows 10 SDK + UwpDesktopで UWPの機能を素の Windowsアプリから使用
Visual Studio 2013に Windows 10 SDK + UwpDesktopで UWPの機能を素の Windowsアプリから使用

  VS2013に Win 10 SDKをインストールして Uwp Desktopで UWPの機能を従来の Windowsアプリで動かす

Visual Studio 2013の C# .NETで 日本語対応の OCR文字認識アプリを自作する方法
Visual Studio 2013の C# .NETで 日本語対応の OCR文字認識アプリを自作する方法

  オフライン環境で動作可能な 世界各国語対応の OCR文字認識アプリを C# .NETで作成、MS製 OCRライブラリを使用

Visual Studio 2013の C#で日本語対応の手書き文字認識アプリを自作する方法
Visual Studio 2013の C#で日本語対応の手書き文字認識アプリを自作する方法

  オフライン環境で動作する世界各国語対応の手書き文字認識アプリを作成、MS製 手書き認識ライブラリを使用

Open XML SDKを使用して Officeのファイルを C#で自在に操る方法
Open XML SDKを使用して Officeのファイルを C#で自在に操る方法

  Microsoft Officeのファイルをプログラムで生成したり直接中身の読み取りができます

Visual Studioの各バージョンと開発できる .NET Frameworkの各バージョンのまとめ
Visual Studioの各バージョンと開発できる .NET Frameworkの各バージョンのまとめ

  .Microsoft.NET Framework Developer Packの各バージョンのダウンロードまとめ。言語パック等

Windows 10対応 Microsoft Speech使用の音声認識アプリ
Windows 10対応 Microsoft Speech使用の音声認識アプリ

  SpeechRecognizeApp 音声認識エンジンを使用してマイク入力の音声を認識します

Windows 10の音声合成エンジンを使用して入力した文字列を喋る & Waveファイル書き出し
Windows 10の音声合成エンジンを使用して入力した文字列を喋る & Waveファイル書き出し

  SpeechApp Windows 10用 Speech 音声合成 Text-to-Speech TTSのアプリ

Visual Studioの C#や MFC C++用のサンプルアプリのリンク集
Visual Studioの C#や MFC C++用のサンプルアプリのリンク集

  Visual Studioの C#や MFC C++でアプリを作る時の参考資料として

Windowsの Input Method Manager IMEや TSF Text Services Frameworkの公式情報源のまとめ
Windowsの Input Method Manager IMEや TSF Text Services Frameworkの公式情報源のまとめ

  Windowsで IME Input Method Manager関連のアプリを作成する時の情報 ImeTrayもこの辺を必死に読んだ

Visual Studioの C#で開発した .Netアプリの難読化をする方法
Visual Studioの C#で開発した .Netアプリの難読化をする方法

  C#で開発した .Netアプリの難読化は必須事項です、素の状態では簡単に内部を解析されます

Visual Studioの C#で開発した .Netアプリを逆コンパイルして、中身の実装を覗き見る方法
Visual Studioの C#で開発した .Netアプリを逆コンパイルして、中身の実装を覗き見る方法

  C#で開発した .Netアプリは比較的簡単に元のソースコードに戻せます

Visual Studio 2019 Professional v16.4を無人インストールする方法、完全自動でインストール
Visual Studio 2019 Professional v16.4を無人インストールする方法、完全自動でインストール

  VS2019 v16.4を完全オフラインインストール&コンポーネント選択の事前設定で自動インストールする

Visual Studio 2013 Professionalを無人インストールする方法、完全自動でインストール
Visual Studio 2013 Professionalを無人インストールする方法、完全自動でインストール

  VS2013を Update 5適用済みとコンポーネント選択の事前設定でインストール時の手間を省く




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2020 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/software/rsa_encrypt_decrypt_openssl/