2007年12月22日

文字列を暗号化するVBA

CryptAPIを使って文字列を暗号化するVBA。

capicom.dllが必要でこのファイルがない環境は、マイクロソフトのサイトから
ダウンロードする必要がある。

' CAPICOM's constants.
Const CAPICOM_ENCRYPTION_ALGORITHM_RC2 = 0
Const CAPICOM_ENCRYPTION_ALGORITHM_RC4 = 1
Const CAPICOM_ENCRYPTION_ALGORITHM_DES = 2
Const CAPICOM_ENCRYPTION_ALGORITHM_3DES = 3
Const CAPICOM_ENCRYPTION_ALGORITHM_AES = 4 'Windows2000では何故か使えない

Const CAPICOM_ENCRYPTION_KEY_LENGTH_MAXIMUM = 0
Const CAPICOM_ENCRYPTION_KEY_LENGTH_40_BITS = 1
Const CAPICOM_ENCRYPTION_KEY_LENGTH_56_BITS = 2
Const CAPICOM_ENCRYPTION_KEY_LENGTH_128_BITS = 3
Const CAPICOM_ENCRYPTION_KEY_LENGTH_192_BITS = 4
Const CAPICOM_ENCRYPTION_KEY_LENGTH_256_BITS = 5

Sub Encrypt()
Dim Crypt As Object
Set Crypt = CreateObject("CAPICOM.EncryptedData")
Crypt.Algorithm.Name = CAPICOM_ENCRYPTION_ALGORITHM_3DES
Crypt.Algorithm.KeyLength = CAPICOM_ENCRYPTION_KEY_LENGTH_MAXIMUM
Crypt.SetSecret "パスワード"
Crypt.Content = InputBox("文字を入力してください")
Debug.Print Crypt.Encrypt
End Sub

Sub Decrypt()
Dim Crypt As Object
Set Crypt = CreateObject("CAPICOM.EncryptedData")
Crypt.Algorithm.Name = CAPICOM_ENCRYPTION_ALGORITHM_3DES
Crypt.Algorithm.KeyLength = CAPICOM_ENCRYPTION_KEY_LENGTH_MAXIMUM
Crypt.SetSecret "パスワード"
Crypt.Decrypt InputBox("暗号化された文字を入力してください")
Debug.Print Crypt.Content
End Sub
posted by 忘却の達人 at 11:31| Comment(0) | TrackBack(0) | vba | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック