Простое шифрование файла по паролю - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Возникла необходимость создания программы шифрующая файлы по паролю. Я курсе встроенных алгоритмов, но речь идет о каком-нибудь простом алгоритме на подобие шифрования текста по ключу. Из старого вспомнил одноразовый блокнот на vb6:
Листинг программы
  1. Private Function OnceTimeNotepad(byval Text as string,byval Password as string) as string
  2. Dim Res as string, I as long
  3. Do while len(password)<len(text)
  4. Password=password & password создаём цикличный ключ
  5. Loop
  6. For i=1 to len(text)
  7. Res=Res & chr(clng(asc(mid$(text,I,1)))+clng(asc(mid$(password,I,1))) mod 256)
  8. next
  9. oncetimenotepad=res
  10. End function
(Правда, тут не до блокнот, ибо пароль должен равняться длине сообщения кажется, а не размножаться - но пофиг). Как можно реализовать что-то подобное на VB.NET для файлов? Я не очень силен в криптографии и пока еще нуб в .Net Хотелось бы увидеть примерный код для шифровки и дешифровки...

Решение задачи: «Простое шифрование файла по паролю»

textual
Листинг программы
  1. Sub Shifer(ByVal Pass As String, ByVal InputFile As String, ByVal OutputFile As String, ByVal Crypt As Boolean)
  2.         Dim BArrIn As Byte() = IO.File.ReadAllBytes(InputFile)
  3.         Dim BArrOut(BArrIn.Length - 1) As Byte
  4.         Dim Tmp As Integer = 0
  5.         For I As Integer = 0 To BArrIn.Length - 1
  6.             If Tmp >= Pass.Length Then Tmp = 0
  7.             BArrOut(I) = B(Pass(Tmp), BArrIn(I), Crypt)
  8.             Tmp += 1
  9.         Next
  10.         IO.File.WriteAllBytes(OutputFile, BArrOut)
  11. End Sub
  12.  
  13. Function B(ByVal S As Char, ByVal Inp As Byte, ByVal Crypt As Boolean) As Byte
  14.         If Crypt = True Then
  15.             If Inp + Asc(S) > 255 Then
  16.                 Return Inp + Asc(S) - 256
  17.             Else
  18.                 Return Inp + Asc(S)
  19.             End If
  20.         Else
  21.             If Inp - Asc(S) < 0 Then
  22.                 Return 256 + Inp - Asc(S)
  23.             Else
  24.                 Return Inp - Asc(S)
  25.             End If
  26.         End If
  27. End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут