Шифрование Rsa

Тема в разделе "Java", создана пользователем LSD, 22 апр 2007.

Статус темы:
Закрыта.
  1. LSD

    LSD Гость

    Дайте кто нить пример шифрования/дешифрования просто массива байт алгоритмом RSA с использованием Java Security.
     
  2. AlexMoney

    AlexMoney Гость

    Может не совсем то но когдато в лабах делал RSA
    Код (Text):
    import java.util.Vector;
    import java.util.Random;
    public class Rsa
    {
    public Vector sp;
    private int p,q,n,m,d,e;

    public Rsa()
    {
    setSp();
    }
    private void init()
    {
    Random random=new Random();
    p=((Integer)(sp.get(random.nextInt(sp.size())))).intValue();
    while ((q=((Integer)(sp.get(random.nextInt(sp.size())))).intValue())==p);
    n=p*q;
    m=(p-1)*(q-1);
    d=random.nextInt(10000);
    e = 2;
    while ((d*e%m) > 1)
    e++;
    }
    public void print()
    {
    System.out.println("Генерация RSA закончена");
    System.out.println("Закрытый ключ: n="+n+" e="+e);
    System.out.println("Открытый ключ: n="+n+" d="+d);
    }
    public void test()
    {
    String s1="",s2="";
    int t;
    for(int i=1;i<256;i++)
    {
    System.out.print(i+" ");
    t=sk(i);
    s1=s1+" "+t;
    s2=s2+" "+sd(t);
    }
    System.out.println();
    System.out.println(s1);
    System.out.println(s2);
    }
    private int sk(int s)
    {
    return powMod(s,d);
    }
    private int sd(int s)
    {
    return powMod(s,e);
    }
    private int powMod(int h,int s)
    {
    double i=1;
    for (;s>0;s--)
    i=(double)i*h%n;
    return (int)i;
    }
    //2,3,5,7,11,13,17...997
    private void setSp()
    {
    sp=new Vector();
    int i=1,j;
    boolean f;
    while (i++<1000)
    {
    f=true;
    for (j=0;f&&j<sp.size();j++)
    if(i%((Integer)(sp.get(j))).intValue()==0)
    f=false;
    if (f)
    sp.add(new Integer(i));
    }
    }
    public void prSp()
    {
    for (int i=0;i<sp.size();i++)
    System.out.print(((Integer)(sp.get(i))).intValue()+" ");
    }
    public static void main(String[] arg)
    {
    Rsa rsa=new Rsa();
    rsa.init();
    rsa.print();
    rsa.test();
    }
    }
     
  3. LSD

    LSD Гость

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

Поделиться этой страницей