Шифрование файлов. Переписать с С++ - C#

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

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

Всем добрый день ! Братья программисты, помогите новичку в освоении шифрования данных
Листинг программы
  1. char CodChar(char ch)
  2. {
  3. return ~(((ch & 0xE0) >> 1) | ((ch & 0x10)<<3) | ((ch & 0x8)>>3) | ((ch & 0x07) <<1));
  4. }
  5. char EnCodChar(char ch)
  6. {
  7. return ~(((ch & 0x70) << 1) | ((ch & 0x80)>>3) | ((ch & 0x1)<<3) | ((ch & 0xE) >>1));
  8. }
  9.  
  10. void foo(const char * inputfile,const char * outputfile,bool encode=false)
  11. {
  12. fstream file(inputfile,ios::in | ios::binary);
  13. file.seekg(0,std::ios::end);
  14. vector<char> vec(file.tellp().seekpos());
  15. file.seekg(0,ios::beg);
  16. file.read(&vec[0],vec.size());
  17. file.close();
  18.  
  19. file.open(outputfile,ios::out | ios::binary);
  20. transform(vec.begin(),vec.end(),vec.begin(),encode?EnCodChar:CodChar);
  21. file.write(&vec[0],vec.size());
  22. }
на просторах этого сайта я нашел код написанный на c++ помогите мне его перевести или расскажите как написать новый на c# буду очень благодарен !

Решение задачи: «Шифрование файлов. Переписать с С++»

textual
Листинг программы
  1. static void foo(string inputfile, string outputfile, bool encode=false)
  2. {
  3.     byte[] buf = File.ReadAllBytes(inputfile);
  4.     if (encode)
  5.     {
  6.         for (int i=0; i<buf.Length; i++)
  7.         {
  8.             byte ch = buf[i];
  9.             buf[i] = (byte)~(((ch & 0x70) << 1) | ((ch & 0x80)>>3) | ((ch & 0x1)<<3) | ((ch & 0xE) >>1));
  10.         }
  11.     }
  12.     else
  13.     {
  14.         for (int i=0; i<buf.Length; i++)
  15.         {
  16.             byte ch = buf[i];
  17.             buf[i] = (byte)~(((ch & 0xE0) >> 1) | ((ch & 0x10)<<3) | ((ch & 0x8)>>3) | ((ch & 0x07) <<1));
  18.         }
  19.     }
  20.     File.WriteAllBytes(outputfile, buf);
  21. }

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


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

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

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

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

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

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