الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اريد مساعده في برنامج تشفير affine

بدأه the heart white في 11 مايو 2012 · 4 رد · 671 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة اله وبركاتة

وبعد التحيه الطيبة,,

اريد مساعده المبرمجين والمبدعين بالبرمجه

فكما هو موضح بالعنوان الموضوع لدي برنامج يقوم بالتشفير بسي++ اريد تحويله الى الجافا او سي.

او كتابه برنامج جديد بسي او الجافا يقوم بالتشفير بطريقه Affine cipher

محتاجه الى البرنامج جدا فلاتبخلوا بخبرتكم وابداعكم

الرجاء الرد باسرع وقت.

وشكرا مقدما

*البرنامج موجود بالاسفل

#include <iostream.h>

#define max 100

Int gcd(int a , int b ){

Int r;

If (a==0&&b==0)

Return 0;

Else if (a!=0 &&b==0)

Return a;

Else if (a==0&&b!=0)

Return b;

Else {

While (a%b !=0){

R=a%b;

A=b;

B=r;

}return b;

}}

Int ph(int n){

Int i,s=0;

For(i=0;i<n;i++){

If(gcd(i,n)==1)

S++;

}return s;

}

Int p(int a,int t,int n){

Int j=1;

Int i;

For(i=1;i<=t;i++)

J=(j*a)%n;

Return j;

}

Char E-crypt(char ch,int k0,int k1){

Int i;

Char a[26]="abcdefghijklmnopqrstuvwxyz";

For(i=0;i<26;i++)

If(ch==a)

Return a[(k0+(i*k1))%26];

}

Char D-crypt (char ch, int k0, int k1){

Int i;

Char a[26]="abcdefghijklmnopqrstuvwxyz";

For(i=0;i<26;i++)

If(ch==a){

If (i<k0)

Return a[26-((i+k0) *k1)];

Else

Return a[((i-k0) *k1)%26];

}}

main(){

int i,n,k0,k1;

char m [max];

char c[max];

char dc[max];

cout<<"enter n k0 k1"<<endl;

cin>>n>>k0>>k1;

cout<<"enter M"<<endl;

for(i=0;i<n;i++)

cin>>m;

cout<<endl;cout<<"C=";

for(i=0;i<n;i++){

c=E-crypt(m,k0,k1);

cout<<c;

}

Cout<<endl;

Cout<<"gcd(26,k1)="<<gcd(26,k1)<<" "<<"ph(26)="<<ph(26)<<" "<<"p(k1,ph(26)-1,26)="<<p(k1,ph(26)-1,26)<<endl;

Int j=p(k1,ph(26)-1,26);

If (k1 !=0 && gcd(26,k1)==1){

For (i=0;i<n;i++){

Dc=D-crypt(c,k0,j);

Cout<<dc;

}}

Else

Cout<<"k1 is not prime"<<endl;

Cout<<endl;

}

#2

قومي بوضع الكود داخل code tag حتى يظهر بشكل منظم

الجافا مثل السي بلس بلس تقريبا كــsyntax الذي يتغير هنا هو اسماء الدوال مثلا System.out.prinln بدلا من المعامل المزايد cout<< و بعض الانواع كالمصفوفات في الجافا عبارة عن object

على العموم اتمنى ان تقومي بطرح كود السي بلس بلس و محاولتك بالجافا حتى استطيع ان اساعدك

تحياتي

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#3
#include <iostream.h>
#define max 100
Int gcd(int a , int b ){
Int r;
If (a==0&&b==0)
Return 0;
Else if (a!=0 &&b==0)
Return a;
Else if (a==0&&b!=0)
Return b;
Else {
While (a%b !=0){
R=a%b;
A=b;
B=r;
}return b;
}}
Int ph(int n){
Int i,s=0;
For(i=0;i<n;i++){
If(gcd(i,n)==1)
S++;
}return s;
}
Int p(int a,int t,int n){
Int j=1;
Int i;
For(i=1;i<=t;i++)
J=(j*a)%n;
Return j;
}
Char E-crypt(char ch,int k0,int k1){
Int i;
Char a[26]="abcdefghijklmnopqrstuvwxyz";
For(i=0;i<26;i++)
If(ch==a)
Return a[(k0+(i*k1))%26];
}
Char D-crypt (char ch, int k0, int k1){
Int i;
Char a[26]="abcdefghijklmnopqrstuvwxyz";
For(i=0;i<26;i++)
If(ch==a){
If (i<k0)
Return a[26-((i+k0) *k1)];
Else
Return a[((i-k0) *k1)%26];
}}
main(){
int i,n,k0,k1;
char m [max];
char c[max];
char dc[max];
cout<<"enter n  k0   k1"<<endl;
cin>>n>>k0>>k1;
cout<<"enter M"<<endl;
for(i=0;i<n;i++)
cin>>m;
cout<<endl;cout<<"C=";
for(i=0;i<n;i++){
c=E-crypt(m,k0,k1);
cout<<c;
}
Cout<<endl;
Cout<<"gcd(26,k1)="<<gcd(26,k1)<<"   "<<"ph(26)="<<ph(26)<<"   "<<"p(k1,ph(26)-1,26)="<<p(k1,ph(26)-1,26)<<endl;
Int j=p(k1,ph(26)-1,26);
If (k1 !=0 && gcd(26,k1)==1){
For (i=0;i<n;i++){
Dc=D-crypt(c,k0,j);
Cout<<dc;
}}
Else 
Cout<<"k1 is not prime"<<endl;
Cout<<endl;
}

مرحبا mental-driller

اسعدني تواجدك كثيراااا

ووضعته داخل html code

تقصد كذا .؟

#4

يبدو لي انكي قمتي نسخ ولصق الكود داخل ميكروسوفت وورد حيث ان بداية كل كلمه بcapital letter

تاكدي اولا ان الكود تبعك يعمل على السي بلس بلس ، قومي بنسخ الكود من editor الخاص بالمترجم مباشره الى المنتدى

وذلك حتى لا يفقد الكود المحاذاه الخاصه بهindentation

لي عوده إن شاء الله

وايضا لا تنسي طرح محاولتك بالجافا

بالتوفيق

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#5

هذا الكود بعد التعديل مع اني ارى ان برنامجك به خطأ منطقي

تاكدي من صحة البرنامج

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javaapplication16;

import java.util.Scanner;

/**
 *
 * @author PsychoMantis
 */
public class CipherClass {

    public static int max = 100;
    public static int gcd(int a, int b) {
        int r;
        if (a == 0 && b == 0) {
            return 0;
        } else if (a != 0 && b == 0) {
            return a;
        } else if (a == 0 && b != 0) {
            return b;
        } else {
            while (a % b != 0) {
                r = a % b;
                a = b;
                b = r;
            }
            return b;
        }
    }

    public static int ph(int n) {
        int i, s = 0;
        for (i = 0; i < n; i++) {
            if (gcd(i, n) == 1) {
                s++;
            }
        }
        return s;
    }

    public static int p(int a, int t, int n) {
        int j = 1;
        int i;
        for (i = 1; i <= t; i++) {
            j = (j * a) % n;
        }
        return j;
    }
    public static char encrypt(char ch, int k0, int k1) {
        int i;
        char[] a = "abcdefghijklmnopqrstuvwxyz".toCharArray();
        for (i = 0; i < 26; i++) {
            if (ch == a) {
                return a[(k0 + (i * k1)) % 26];
            }
        }
        //missing from original code
        return 0;
    }

    public static char decrypt(char ch, int k0, int k1) {
        int i;
        char a[] = "abcdefghijklmnopqrstuvwxyz".toCharArray();
        for (i = 0; i < 26; i++) {
            if (ch == a) {
                if (i < k0) {
                    return a[ 26 - ((i + k0) * k1)];
                } else {
                    return a[((i - k0) * k1) % 26];
                }
            }
        }
        //missing from original code
        return 0;
    }

public static void main(String [] args) {
        int i, n, k0, k1;
        char[] m  = new char[CipherClass.max];
        char[] c  = new char[CipherClass.max];
        char[] dc = new char[CipherClass.max];
        System.out.println("enter n  k0   k1");
        Scanner scan = new Scanner(System.in);
        n  = scan.nextInt();
        k0 = scan.nextInt();
        k1 = scan.nextInt();
        System.out.println("enter M");

        for (i = 0; i < n; i++) {
            m = scan.next().charAt(0);
        }
        System.out.println();
        System.out.println("C=");
        for (i = 0; i < n; i++) {
            c = CipherClass.encrypt(m, k0, k1);
            System.out.println(c);

        }
        System.out.println();
        System.out.println("gcd(26,k1)= "+ CipherClass.gcd(26, k1)+" ph(26)= "+CipherClass.ph(26)+" p(k1,ph(26)-1,26)= "+ CipherClass.p(k1, CipherClass.ph(26) - 1, 26));

        int j = CipherClass.p(k1, CipherClass.ph(26) - 1, 26);
        if(k1 != 0 && CipherClass.gcd(26, k1) == 1)
        {
            for(i = 0;i<n; i++){
            dc = CipherClass.decrypt(c, k0, j);
                System.out.println(dc);

            }
        }
        else 
            System.out.println("k1 is not prime");

    }
}

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

مواضيع مشابهة