Простое шифрование файла по паролю - Visual Basic .NET
Формулировка задачи:
Возникла необходимость создания программы шифрующая файлы по паролю. Я курсе встроенных алгоритмов, но речь идет о каком-нибудь простом алгоритме на подобие шифрования текста по ключу.
Из старого вспомнил одноразовый блокнот на vb6:
(Правда, тут не до блокнот, ибо пароль должен равняться длине сообщения кажется, а не размножаться - но пофиг).
Как можно реализовать что-то подобное на VB.NET для файлов? Я не очень силен в криптографии и пока еще нуб в .Net Хотелось бы увидеть примерный код для шифровки и дешифровки...
Листинг программы
- Private Function OnceTimeNotepad(byval Text as string,byval Password as string) as string
- Dim Res as string, I as long
- Do while len(password)<len(text)
- Password=password & password ‘ создаём цикличный ключ
- Loop
- For i=1 to len(text)
- Res=Res & chr(clng(asc(mid$(text,I,1)))+clng(asc(mid$(password,I,1))) mod 256)
- next
- oncetimenotepad=res
- End function
Решение задачи: «Простое шифрование файла по паролю»
textual
Листинг программы
- Sub Shifer(ByVal Pass As String, ByVal InputFile As String, ByVal OutputFile As String, ByVal Crypt As Boolean)
- Dim BArrIn As Byte() = IO.File.ReadAllBytes(InputFile)
- Dim BArrOut(BArrIn.Length - 1) As Byte
- Dim Tmp As Integer = 0
- For I As Integer = 0 To BArrIn.Length - 1
- If Tmp >= Pass.Length Then Tmp = 0
- BArrOut(I) = B(Pass(Tmp), BArrIn(I), Crypt)
- Tmp += 1
- Next
- IO.File.WriteAllBytes(OutputFile, BArrOut)
- End Sub
- Function B(ByVal S As Char, ByVal Inp As Byte, ByVal Crypt As Boolean) As Byte
- If Crypt = True Then
- If Inp + Asc(S) > 255 Then
- Return Inp + Asc(S) - 256
- Else
- Return Inp + Asc(S)
- End If
- Else
- If Inp - Asc(S) < 0 Then
- Return 256 + Inp - Asc(S)
- Else
- Return Inp - Asc(S)
- End If
- End If
- End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д