[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

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