ファイルの暗号化と解読 <TOP>
EncryptFile
ファイルまたはディレクトリを暗号化する
DecryptFile
暗号化されたファイルまたはディレクトリを解読
他のユーザーが暗号化されたファイルにアクセスしようとした場合アクセスが拒否されます。
'================================================================ '= ファイルの暗号化と解読 '= (EncryptFile.bas) '================================================================ #include "Windows.bi" ' ファイルまたはディレクトリを暗号化する。ファイルのデータストリームはすべて暗号化。暗号化されたディレクトリ内で新しく作成するファイルはすべて暗号化される Declare Function Api_EncryptFile& Lib "advapi32" Alias "EncryptFileA" (ByVal lpFileName$) ' 暗号化されたファイルまたはディレクトリを解読 Declare Function Api_DecryptFile& Lib "advapi32" Alias "DecryptFileA" (ByVal lpFileName$, ByVal dwReserved&) Var Shared Edit1 As Object Var Shared Text1 As Object Var Shared Text2 As Object Var Shared Button1 As Object Var Shared Button2 As Object Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 14 Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14 Text2.Attach GetDlgItem("Text2") : Text2.SetFontSize 14 Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 Button2.Attach GetDlgItem("Button2") : Button2.SetFontSize 14 Var Shared FileName As String '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var Ret As Long 'ファイルが選択されているときは If Len(FileName) Then '対象のファイル名を指定 FileName = Edit1.GetWindowText 'ファイルが選択されていないときは Else Text2.SetWindowText "ファイルを選択してください!" Exit Sub End If '暗号化を設定 Ret = Api_EncryptFile(FileName) '設定できたときは If Ret <> 0 Then Text2.SetWindowText "設定しました。" End If End Sub '================================================================ '= '================================================================ Declare Sub Button2_on edecl () Sub Button2_on() Var Ret As Long 'ファイルが選択されているときは If Len(FileName) Then '対象のファイル名を指定 FileName = Edit1.GetWindowText 'ファイルが選択されていないときは Else Text2.SetWindowText "ファイルを選択してください!" Exit Sub End If '暗号化を設定 Ret = Api_DecryptFile(FileName, 0) '設定できたときは If Ret <> 0 Then Text2.SetWindowText "解除しました。" End If End Sub '================================================================ '= シェルドロップされたファイル名を取得 '================================================================ Declare Sub Edit1_DropFiles edecl (ByVal DF As Long) Sub Edit1_DropFiles(ByVal DF As Long) Var CN As Long CN = GetDropFileCount(DF) FileName = GetDropFileName(DF, 0) Edit1.SetWindowText FileName End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End