Compare commits

...

2 Commits

Author SHA1 Message Date
7830fe53bc docs 2025-12-23 19:01:39 +04:00
b24981edcb first commit 2025-12-23 18:55:58 +04:00
9 changed files with 47 additions and 9 deletions

12
DOCS.md Normal file
View File

@ -0,0 +1,12 @@
# Документация на VIPRE-CRYPTOR
- [Установка](#установка)
## Установка
Зависимости для компиляции:
- GCC
- GNU Make
- Git
Установка:
```bash
cd ~
git clone https://gitlabor.ru/German/vipre-cryptor.git
cd vipre-cryptor

View File

@ -1,4 +1,3 @@
## VIPRE-CRYPTOR
Программа шифрования данных.
Документация пока не доступна.
Вызовите ```vipre-cryptor --help``` для получения информации.
Документация [здесь](https://gitlabor.ru/German/vipre-cryptor/src/branch/main/DOCS.md).

View File

@ -1,3 +1,3 @@
./vipre-cryptor --sig database.sig
./vipre-cryptor --create-user my_usr.bin database.sig -f example.txt
./vipre-cryptor --user my_usr.bin database.sig -f example_out.txt
./vipre-cryptor --sig key_file.sig
./vipre-cryptor --create-user user_name.bin key_file.sig -f example.txt
./vipre-cryptor --user user_name.bin key_file.sig -f example_out.txt

Binary file not shown.

BIN
key.sig Normal file

Binary file not shown.

View File

@ -1,3 +0,0 @@
admin
00000000
οy <E2809C>¬<E280B9>VJ`<60>5<EFBFBD>λλλλ»λελv<76><E280B9>Ο—λ~λ<>Ο<E2809C>εyT<79>λλλλ»λ y``y yT<79>λλλλ»λ <E280B9>ΟλJ<4A>λ<EFBFBD>'`<E28094>λ~λθ<E280B9>V<EFBFBD>5<EFBFBD>Ο<79>Ο<EFBFBD>5<EFBFBD>θλ<CEBB>`<60><CEBB>J<E280B9>Ο yTλΕ4Tλ2y3<E280B9>άθ<E2809C>ϊ<EFBFBD>

3
user.bin Normal file
View File

@ -0,0 +1,3 @@
admin
1234
ŹÍZŹŽ5ô*$–¤* –ń[iń•ńeŹß›ŁŢŹűť[dńŁŢŹŽ5Í–ń[ińZŹUšŮń¤ŹU–Ůôiń[iŹ|iʏ›ŁŢ•[ńŁşŹcť–ńiŹ/ů»Ło*ZÍ[ů Ło*$iŹ/iŹßť–¤*iŹßŁŢŹŽ–Ůô[­ŹTńăŹU ž–ŹjA

Binary file not shown.

View File

@ -78,7 +78,7 @@ unsigned int __generate_hash(char* str) {
size_t max = strlen(str);
while (pos < max) {
ret += (unsigned char)str[pos];
if (ret > 65000) ret = 0;
if (ret > 65000) ret = ret / 10;
pos ++;
}
if (ret == 0) ret ++;
@ -94,6 +94,25 @@ signed short int __find_arr_index(char val, char* arr, size_t len) {
return -1;
}
void __refresh_dt(char* arr, size_t sz) {
sz --;
char save_dt = arr[sz];
unsigned int pos = sz - 1;
while (true) {
arr[pos + 1] = arr[pos];
if (pos) pos --;
else break;
}
arr[0] = save_dt;
}
void __refresh_data(char* arr, size_t sz, unsigned int to) {
while (to != 0) {
__refresh_dt(arr, sz);
to --;
}
}
int __create_sig(char* file) {
size_t arr_len = abs(CHAR_MIN) + abs(CHAR_MAX) + 1;
char* arr = (char*)malloc(arr_len * sizeof(char));
@ -156,6 +175,7 @@ int __create_user(char* file, char* user_file, char* cry_file) {
password[cnt] = c;
cnt ++;
}
size_t cnt_save = cnt;
password[cnt] = '\0';
fputs("Repeat password: ", stdout);
cnt = 0;
@ -167,6 +187,11 @@ int __create_user(char* file, char* user_file, char* cry_file) {
}
cnt ++;
}
if (cnt != cnt_save) {
puts("\033[1mvipre-cryptor: \033[91mThe password was repeated incorrectly!\033[0m");
free(arr);
return EXIT_FAILURE;
}
fputs(user_login, wp); putc('\n', wp);
fputs(password, wp); putc('\n', wp);
fseek(fw, 0, SEEK_END);
@ -177,6 +202,7 @@ int __create_user(char* file, char* user_file, char* cry_file) {
c = (char)getc(fw);
c = arr[(unsigned char)c];
putc(c, wp);
__refresh_data(arr, arr_len, abs(arr[0]));
count ++;
}
free(arr);
@ -224,6 +250,7 @@ int __read_user(char* file, char* user_file, char* cry_file) {
while (pos < data_size) {
c = getc(up);
c = __find_arr_index(c, arr, arr_len);
__refresh_data(arr, arr_len, abs(arr[0]));
putc(c, fw);
pos ++;
}