Метод шифрования RSA не работает с большими числами - VB
Формулировка задачи:
Реализую метод шифрования RSA. С небольшими числами работает все нормально, а вот с большими это беда. Подскажите способ, или может библиотеку. Заранее спасибо.
Решение задачи: «Метод шифрования RSA не работает с большими числами»
textual
Листинг программы
Option Explicit ' ' ' © FelixMacintosh ' ' Private Sub Command1_Click() Dim s$ s = "Пример шифрования данных" Print s Print "*****Шифруем********" s = Mixer(s, True) Print s Print "*****Дешифруем********" s = Mixer(s, False) Print s End Sub Public Function Mixer$(Text$, Action As Boolean, Optional ByVal Start& = 1, Optional ByVal Dln&, Optional _ ByVal Cyk& = 1) 'Перемешивает текст с наращиванием длины реверса используя простые числа 'Arg: Текст // Акция (False = Обратное действие) // Старт // Длина // Число циклов Dim l&(), f& If Start Then Else Start = 1 If Dln Then Else Dln = Len(Text) - Start + 1 l = ProstChisla(Dln) Mixer = Text$ If Action Then For Cyk = Cyk To 1 Step -1 For f = 1 To UBound(l) Mid(Mixer, Start, l(f)) = StrReverse(Mid(Mixer, Start, l(f))) Next Next Else For Cyk = Cyk To 1 Step -1 For f = UBound(l) To 1 Step -1 Mid(Mixer, Start, l(f)) = StrReverse(Mid(Mixer, Start, l(f))) Next Next End If End Function Public Function ProstChisla(Max&) As Long() 'Возврат списка простых чисел Dim i&, f&, d& ReDim b(Max) As Byte ReDim PCh&(Max \ 2) PCh(0) = 1 PCh(1) = 2 i = 1 d = 1 Do For f = PCh(i) To Max Step PCh(i) 'вычеркиваем кратные последнему простому b(f) = 1 Next f For f = PCh(i) + d To Max Step 2 'ищем следующее простое число If b(f) = 0 Then i = i + 1: PCh(i) = f: Exit For Next f d = 2 Loop Until f > Max ReDim Preserve PCh(i) ProstChisla = PCh End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д