DOBON.NETプログラミング道掲示板

■34568 / 1階層)  VB.NETのVBA化
□投稿者/ 魔界の仮面弁士 大御所(1306回)-(2020/10/23(Fri) 01:46:56)
  • アイコンNo34567に返信(たんとおやじさんの記事)
    > 「パスワードで文字列を暗号化する」のVB.NETのプログラムをExcelのVBAで書こうとしているのですが、

    VBA で暗号化処理を記述する場合の選択肢として思い当たるのは、CNG API、CryptAPI、CAPICOM あたりですね。
    https://docs.microsoft.com/ja-jp/windows/win32/seccng/cng-portal?WT.mc_id=DT-MVP-8907
    https://docs.microsoft.com/en-us/windows/win32/seccrypto/cryptography--cryptoapi--and-capicom?WT.mc_id=DT-MVP-8907
    https://docs.microsoft.com/ja-jp/windows/win32/seccrypto/capicom-reference?WT.mc_id=DT-MVP-8907



    > VBAでどのように書いたらいいのか悩んでいます。

    .NET の System.Security.Cryptography.Rfc2898DeriveBytes を挙げられていますが、
    これ自体は暗号化機能そのものではなく鍵導出関数ですよね。必要なのは PBKDF2 ですか?
    https://docs.microsoft.com/ja-jp/dotnet/api/system.security.cryptography.rfc2898derivebytes?WT.mc_id=DT-MVP-8907&view=netframework-4.8


    PBKDF2 アルゴリズムの Rfc2898DeriveBytes にしても
    PBKDF1 アルゴリズムの PasswordDeriveBytes にしても、
    VBA から呼び出せるようにはなっていません。
    (引数付きコンストラクタがサポートされない)


    不幸中の幸いで、PRF (pseudorandom function) については

    CreateObject("System.Security.Cryptography.HMACMD5") 'MD8 ハッシュ関数
    CreateObject("System.Security.Cryptography.HMACSHA1") 'SHA-1 ハッシュ関数
    CreateObject("System.Security.Cryptography.HMACSHA256") 'SHA-256 ハッシュ関数
    CreateObject("System.Security.Cryptography.HMACSHA384") 'SHA-384 ハッシュ関数
    CreateObject("System.Security.Cryptography.HMACSHA512") 'SHA-512 ハッシュ関数
    CreateObject("System.Security.Cryptography.HMACRIPEMD160") 'RIPEMD-160 ハッシュ関数

    として利用できますので、これを用いて PBKDF2 な Function を自作することはできるかもしれません。

    https://tools.ietf.org/html/rfc6070
    https://ja.wikipedia.org/wiki/PBKDF2
違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←VB.NETのVBA化 /たんとおやじ →Re[2]: VB.NETのVBA化 /たんとおやじ
 
上記関連ツリー

Nomalアイコン VB.NETのVBA化 / たんとおやじ (20/10/22(Thu) 22:09) #34567
Nomalアイコン VB.NETのVBA化 / 魔界の仮面弁士 (20/10/23(Fri) 01:46) #34568 ←Now
  └Nomalアイコン Re[2]: VB.NETのVBA化 / たんとおやじ (20/10/23(Fri) 06:57) #34569

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -