「徒然雑草コノヨノナカ ザッソウセイシンデ タチムカエ!」このホームページには広告アフィリエイトおよび広告宣伝・プロモーション・商品広告品レビューが含まれています。
「徒然雑草コノヨノナカ ザッソウセイシンデ タチムカエ!」このホームページには広告アフィリエイトおよび広告宣伝・プロモーション・商品広告品レビューが含まれています。
AD スポンサー

[Excel for VBA] 簡単な暗号化と復号化について

この記事は約4分で読めます。

[Excel for VBA] 簡単な暗号化と復号化について

Excelを利用して、Database接続した状態からID,Passwordをやり取りするようなことを考えている方も多いと思います。

本来であればセキュリティが弱いExcelを使わずにVisual Studioで作り上げたほうがDatabaseとのやり取りや、ソースなどが見られることもないので安全だと思いますが・・。

今回、少々訳があってDatabaseのユーザー情報を持ったテーブルからADO接続しフォームからログイン認証を行うものを作る必要がありました。

その上で、Databaseにパスワードを登録する際に生のPasswardをUpdateするわけには行かないので、今回はとりあえず簡単な暗号・復号化のソースを書きました。

password_fukugou

[code lang=”vb”]
Private Sub CommandButton1_Click()
Dim filepath As String
Dim fNumber As Integer
Dim fString As String
Dim L As Long
Dim LL As Long
Dim B() As Byte

fNumber = FreeFile
filepath = ThisWorkbook.Path & “\ing_output.tmp”

‘古い「fName」パスの暗号ファイルを削除する。
Open filepath For Output As #fNumber
Close #fNumber

‘暗号化したい文字列を取得
fString = TextBox1.Value

‘ファイル出力(バイナリモードでデータを1バイトずつ処理をする)
Open filepath For Binary As #fNumber

L = Len(fString)
ReDim B(L – 1)

For LL = 0 To L – 1
B(LL) = Asc(Mid(fString, LL + 1, 1))
B(LL) = Not B(LL)
Next

Put #fNumber, , B()
Close #fNumber
End Sub

Private Sub CommandButton2_Click()
Dim filepath As String
Dim fNumber As Integer
Dim fString As String
Dim L As Long
Dim LL As Long
Dim B() As Byte

fNumber = FreeFile
filepath = ThisWorkbook.Path & “\ing_output.tmp”

Open filepath For Binary As #fNumber

L = LOF(fNumber)
ReDim B(L – 1)

Get #fNumber, , B()

Close #fNumber

For LL = 0 To L – 1
B(LL) = Not B(LL)
fString = fString & Chr(B(LL))
Next

‘複合した内容を表示する。
TextBox2.Value = fString

End Sub
[/code]

入力された半角英数字をバイナリモード 2バイトに置き換える方法です。
復号化はバイナリモードから1バイトづつに展開するだけですので、見た目はよくわからない漢字のカタマリになりますが、簡単すぎるので見る人が見ればわかると思います。

そもそもExcel vbaではセキュリティが甘いので、コレ以上求めてもというのが正直なところ。
今回は、さらっと見てわからなければ良いぐらいのものなので。

ソースと、実際のサンプルファイルをおいておきます。
#ログイン認証 (Access Databaseファイル)のフォームは別の機会に。

サンプルファイル ダウンロード Passward_Sample1.zip

今話題の商品や、その他のおすすめはこちら

SALONIA サロニア スピーディーイオン ドライヤー 大風量 速乾 軽量 マイナスイオン ヘアドライヤー SL-013BK ブラック
SALONIA(サロニア)
¥5,918(2024/12/21 04:15時点)
【2.3㎥/minの大風量】ドライ時間30%短縮を実現。面倒なドライ時間を短縮できる大風量ドライヤー


ハズブロ(HASBRO) ジェンガ ゲーム JENGA 天然木使用のオリジナル ブロックゲーム スタッキングタワーゲーム 6才以上 プレイヤー人数1人以上 子供用パーティーゲーム ファミリーゲーム クリスマスおもちゃ クリスマスギフト A2120 正規品
ハズブロ(HASBRO)
¥2,592(2024/12/21 06:42時点)
オリジナルの木製ブロックゲーム:リスクを冒す勇気がありますか?タワーを崩さないようにブロックを1本ずつ抜いて上に積んでいきましょう!子供も大人も楽しめるジェンガゲームは、何世代にもわたり愛されてきた木製ブロックバランスゲームです。

【Amazon.co.jp限定】タオル研究所 [ボリュームリッチ] #003 フェイスタオル スモーキーブルー 5枚セット ホテル仕様 ふかふか 高速吸水 綿100% 耐久性 毛羽落ち少ない 【選べる10色】 Japan Technology
タオル研究所
¥1,890(2024/12/21 13:12時点)
類似品にご注意:タオル研究所のイメージを利用してシリーズを展開することにより、お客様が間違えて購入され、弊社に苦情の電話が入っております。タオル研究所という名称をよく確認してご購入ください。

Amazonベーシック ヨガマット 厚め 12mm キャリーストラップ付 トレーニングマット ストレッチマット ピラティスマット 188×61×1cm ブラック
Amazonベーシック(Amazon Basics)
¥1,900(2024/12/21 19:36時点)
【素材】NBR (ニトリルブタジエンゴム)。軽量で丈夫な耐久性のあるフォームで作られています。


【Amazon.co.jp限定】バッファロー microSD 128GB 100MB/s UHS-1 U1 microSDXC【 Nintendo Switch 対応 】V10 A1 IPX7 Full HD RMSD-128U11HA/N
バッファロー
¥1,980(2024/12/21 03:09時点)
※個体により製品本体のデザイン・表記が一部異なる場合がございますが仕様上問題ございません。 (個体により製品本体にA1の印字がない場合がございますが、アプリケーション パフォーマンスクラス1に対応しております。)

Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 100W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker
¥1,890(2024/12/21 17:59時点)
かつてない柔軟性:ケーブル内部の銅線をグラフェンで覆い、外装にシリコン素材を使用した3層構造を採用し、従来のケーブルにはないやわらかさを実現しました。肌に優しい使い心地をお楽しみいただけます。

Anker Magnetic Cable Holder マグネット式 ケーブルホルダー ライトニングケーブル USB-C Micro USB 他対応 デスク周り 便利グッズ (ブラック)
Anker
¥1,690(2024/12/21 04:38時点)
デスク周りをスマートに:内蔵マグネットと専用マグネットクリップを使用して、直径3.5mmまでのライトニングケーブルやUSB-Cケーブルを確実に固定。デスク周りを洗練された状態に保ち、作業効率を最大限に引き上げます。

ATEngeJP 電動エアダスター 、長さ3mのコード付属 500W/260Wの2段階出力切替 円環付き。パソコン、キーボード、エアコン、プリンタなどのホコリを吹き飛ばすのにご使用いただけます。
ATEngeJP
¥6,299(2024/12/22 00:54時点)
風量は5.1OZ/18kPa強力の大風量お持ち、家庭用品やオフィス用の機器の清潔用に適用、ホコリやゴミなどを除去することには便利です。

No tags for this post.

この記事に関連する、おススメ記事はこちら!

AD スポンサー
パソコン・ソフト・ゲーム関係
AD スポンサー
この記事を下記のSNSでシェアをする。
ゴンタをフォローする