У меня на компьютере не установлен антивирус, а пароли хранятся в файле. Решил защитить шифрованием. Но бесплатных программ не нашёл. Думаю, уж лучше сделать свою. Хотел попробовать на C#, но среду разработки устанавливать - одна морока)) Если кто хочет этим заниматься, переходите по ссылке. А я - потом.
А пока - на Visual Basic:
Public Sub encrypt(ByVal Pass As String, ByVal InputFile As String, ByVal OutputFile As String, ByVal Crypt As Boolean)
Dim ByteIN As Byte() = IO.File.ReadAllBytes(InputFile), ByteOut(ByteIN.Length - 1) As Byte, PL As Integer = Pass.Length, bPass() As Byte = System.Text.ASCIIEncoding.ASCII.GetBytes(Pass), biPass(bPass.Length - 1) As Integer
bPass.CopyTo(biPass, 0)
If Crypt Then
For i As Integer = 0 To ByteIN.Length - 1
ByteOut(i) = (ByteIN(i) + biPass(i Mod PL)) Mod 256
Next
Else
For i As Integer = 0 To ByteIN.Length - 1
ByteOut(i) = (256 + ByteIN(i) - biPass(i Mod PL)) Mod 256
Next
End If
IO.File.WriteAllBytes(OutputFile, ByteOut)
End Sub
Function B(ByVal S As Char, ByVal Inp As Byte, ByVal Crypt As Boolean) As Byte
If Crypt Then
Return IIf(Inp + Asc(S) > 225, Inp + Asc(S) - 256, Inp + Asc(S))
Else
Return IIf(Inp - Asc(S) < 0, 256 + Inp - Asc(S), Inp - Asc(S))
End If
End Function
Шифрует просто замечательно. Побитно. Я один раз файл pic.png зашифровал в pic2.jpg и потом расшифровал в pic3.bmp. Конвертирует довольно хорошо. А ещё может сделать из exzeshnik.exe exzeshnik.txt и наоборот.
Кстати, после шифрования надо убить входной файл командой Kill(<файл>). В приведённом коде это не предусмотрено, это надо сделать после вызова процедуры encrypt() c необходимыми параметрами. Объясняю, что за параметры:
Pass - код шифрования;
InputFile - входной файл (который будет зашифрован);
OutputFile - выходной файл (путь и имя того файла, который получится, чтобы сохранить его);
Crypt - шифровать или расшифровывать. При значении True InputFile будет зашифрован и результат будет сохранён в OutputFile, а при значении False зашифрованный InputFile будет расшифрован и результат будет сохранён в OutputFile.
Итак, вызываем encrypt() с объяснёнными выше параметрами, убиваем входной файл - и всё. У меня получился такой шифратор:
Кто заинтересовался - посмотрите видос: