Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 25.11.2020
Сообщений: 13

Есть код который шифрует строку со смещением каждого символа

29.01.2021, 09:15. Показов 1510. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать так, чтобы символ строки смещался на кол-во позиций равное порядковому номеру символа в строке?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Function F_Xor(ByVal s1 As String, ByVal s2 As String) As String
Dim S As String, D1 As String, D2 As String
If (Len(s1) > 1) Then s1 = Left(s1, 1)
If (Len(s2) > 1) Then s2 = Left(s2, 1)
D1 = CStr(Application.Dec2Bin(Asc(s1), 8))
D2 = CStr(Application.Dec2Bin(Asc(s2), 8))
S = ""
For i = 1 To 8
 
    If (Mid(D1, i, 1) = "1") Xor (Mid(D2, i, 1) = "1") Then
    S = S & "1"
    Else
    S = S & "0"
    End If
Next i
S = Application.Bin2Dec(S)
S = Chr(S)
F_Xor = S
End Function
Function ShiftCircle(K As String, N As Integer) As String
N = N Mod 8
If (N = 0) Then
    ShiftCircle = K
     Exit Function
 End If
 If N > 0 Then
    ShiftCircle = ShiftLeft(K, N)
 End If
End Function
Function ShiftLeft(S As String, N As Integer) As String
Dim D As Integer, B As String, B1 As String, B2 As String
D = Asc(S)
B = CStr(Application.Dec2Bin(D, 8))
B1 = Left(B, N)
B2 = Right(B, 8 - N)
B = B1 & B2
D = CInt(Application.Bin2Dec(B))
S = Chr(D)
ShiftLeft = S
End Function
Function CRC(Текст)
Dim Counter As Long, T As Integer, CRCT As Integer, OS As String, R As String, CRCTT As String
 T = Len(Текст)                      'длинна строки
For Counter = 1 To CInt(T)           ' начало цикла For
  OS = Mid(Текст, Counter, 1)        'символ из текста (Соответсвующий счётчику)
  R = ShiftCircle(OS, CInt(Counter))       'переменная в которую кладётся символ к которому применили функцию ShiftCircle
  R = Asc(R)                         'Переменная с Номером этого символа
  CRC = (CRC + CInt(R)) Mod 256      ' Суммируется общее CRC
Next Counter                         ' Конец цикла
CRC = Chr(CRC)                       'Преобразование CRC в Символ
CRC = (Текст & CRC)                  ' ВЫВОД функции : (Текст и CRC)
End Function
Function Шифр(Текст As String)
Dim X1 As String, X2 As String, aL As String, CRCT As String, Counter As Integer, i As Long, T As Integer, CRCTT As String
 
CRCT = Right(Текст, 1)   'в переменную записывается CRC
 
aL = ""
T = CInt(CInt(Len(Текст)) - 1)  'Длинна строки
For i = 1 To T                  'начало цикла
     X1 = Mid(Текст, i, 1)      'символ из текста (Соответсвующий счётчику)
     X2 = ShiftCircle(CRCT, CStr(i))  'Переменная в которой хранится значение CRC передвинутой на значение Счётчика
    If (X1 = X2) Then           'Начало цикла ЕСЛИ проверяющего идентичность переменных x1 и x2
        aL = aL & X1            'Выполняется если условие верно
    Else
        aL = aL & F_Xor(X1, X2) 'Выполняется если условие ложно
    End If
Next i                          'конец цикла
CRCTT = Right(Текст, 1)         'в переменную записывается CRC
Шифр = (aL & CStr(CRCTT))       ' ВЫВОД функции : (Текст (зашифрованный или дешиврованный) и CRC)
End Function
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.01.2021, 09:15
Ответы с готовыми решениями:

Создать функцию программиста, которая шифрует любую строку, используя ключ, то есть прибавляет к коду каждого символа одну из цифр ключа
№1 Создать функцию программиста, которая шифрует любую строку, используя ключ, то есть прибавляет к коду каждого символа одну из цифр...

Создать функцию программиста, которая шифрует любую строку, используя ключ, то есть прибавляет к коду каждого символа последнюю цифру ключа
Создать функцию программиста, которая шифрует любую строку, используя ключ, то есть прибавляет к коду каждого символа последнюю цифру...

Предикат, который продублирует вхождение каждого символа в строку
Создайте предикат, который продублирует вхождение каждого символа в строку.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.01.2021, 09:15
Помогаю со студенческими работами здесь

Есть две строки, после каждого вхождения определенного символа, в первую строку вставить вторую строку
<script> var s="dndcddcn"; s0="ddf"; for(var i=0;i<s.length();i++) { s=s+s; if (s=n) s=s+s0; } ...

Создайте предикат, который продублирует вхождение каждого символа в строку
Здравствуйте, помогите написать программу на языке турбо пролог: Создайте предикат, который продублирует вхождение каждого символа в...

Написать цикл for который выводит код ASCII каждого символа в строке
на 490 стр 5 того издания 1 части Лутца встречаются первые задания по практики... 1. Написание базовых циклов. В данном упражнении...

Расшифровать строку, изменив код каждого символа строки на N
Дана зашифрованная строка и ключ для расшифровки, представляющий собой число N. Расшифровать строку, изменив код каждого символа строки на...

Зашифровать строку, изменив код каждого символа на число N
Дана строка(Любое предложение). Зашифровать её, изменив код каждого символа на число N


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru