Шифрование файлов. Переписать с С++ - C#
Формулировка задачи:
Всем добрый день !
Братья программисты, помогите новичку в освоении шифрования данных
на просторах этого сайта я нашел код написанный на c++
помогите мне его перевести или расскажите как написать новый на c#
буду очень благодарен !
Листинг программы
- char CodChar(char ch)
- {
- return ~(((ch & 0xE0) >> 1) | ((ch & 0x10)<<3) | ((ch & 0x8)>>3) | ((ch & 0x07) <<1));
- }
- char EnCodChar(char ch)
- {
- return ~(((ch & 0x70) << 1) | ((ch & 0x80)>>3) | ((ch & 0x1)<<3) | ((ch & 0xE) >>1));
- }
- void foo(const char * inputfile,const char * outputfile,bool encode=false)
- {
- fstream file(inputfile,ios::in | ios::binary);
- file.seekg(0,std::ios::end);
- vector<char> vec(file.tellp().seekpos());
- file.seekg(0,ios::beg);
- file.read(&vec[0],vec.size());
- file.close();
- file.open(outputfile,ios::out | ios::binary);
- transform(vec.begin(),vec.end(),vec.begin(),encode?EnCodChar:CodChar);
- file.write(&vec[0],vec.size());
- }
Решение задачи: «Шифрование файлов. Переписать с С++»
textual
Листинг программы
- static void foo(string inputfile, string outputfile, bool encode=false)
- {
- byte[] buf = File.ReadAllBytes(inputfile);
- if (encode)
- {
- for (int i=0; i<buf.Length; i++)
- {
- byte ch = buf[i];
- buf[i] = (byte)~(((ch & 0x70) << 1) | ((ch & 0x80)>>3) | ((ch & 0x1)<<3) | ((ch & 0xE) >>1));
- }
- }
- else
- {
- for (int i=0; i<buf.Length; i++)
- {
- byte ch = buf[i];
- buf[i] = (byte)~(((ch & 0xE0) >> 1) | ((ch & 0x10)<<3) | ((ch & 0x8)>>3) | ((ch & 0x07) <<1));
- }
- }
- File.WriteAllBytes(outputfile, buf);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д