投稿時間: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
|