投稿日 | : 2004/11/16(Tue) 16:46 |
投稿者 | : T |
URL | : |
タイトル | : ファイル内の特定部分の暗号化について |
iniファイルを読みこんで"="の右側のみを暗号化したファイルを作成するモジュールを作っています。
WINDWOS APIのCryptEncryptを使用して暗号化を試みているのですが、どうもうまくいきません。
読み込みから書き出しまでのコードは以下の通りです。
別段エラーは出ないのですが、暗号化されずそのまま出力されています。
また、暗号キーはファイルの先頭行に書き込まれています。
CryptEncryptの5番目のパラメータがString配列なので、そのせいかな?とも思うのですが、いかがでしょう?
' 暗号化開始
'全セクションの取得
If Not CBool(GetINISectionNames(strFileIn, secbuf)) Then
MsgBox "INIファイル読み込みに失敗しました"
GoTo done:
End If
'セクションごとに値の取得
For i = 0 To UBound(secbuf)
ReDim keybuf(dwBufferLen - 1)
If Not CBool(GetINISectionKeys(secbuf(i), strFileIn, keybuf)) Then
Call MsgBox("INIファイル読み込みに失敗しました")
GoTo done:
Else
For j = 0 To UBound(keybuf)
ReDim equalbuf(dwBufferLen - 1)
equalbuf = Split(keybuf(j), "=")
If dwByte < dwBufferLen Then lngEOF = 1
If UBound(equalbuf) = 1 Then
ReDim equalByte(dwBufferLen - 1)
'暗号化
If Not CBool(CryptEncrypt(hKey, 0, lngEOF, 0, equalbuf(1), dwByte, dwBufferLen)) Then
MsgBox ("暗号化中にエラーが起きました。")
GoTo done:
End If
End If
keybuf(j) = Join(equalbuf, "=")
Next j
End If
'出力ファイルへの書き込み
If Not CBool(SetINISectionKeys(secbuf(i), strFileOut, keybuf)) Then
MsgBox ("暗号化中にエラーが起きました。")
GoTo done:
End If
Next i