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

طريقة تشفير جديدة . أريد مساعدتكم

بدأه omar_alreyati في 14 نوفمبر 2010 · 3 رد · 846 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم جميعاً ايها الأخوة

لدي طريقة تشفير جديدة من انتاجي واريد مساعدتكم في برمجتها :

الطريقة تعتمد على مشاركة مفتاحين سريين بين المرسل والمستقبل وهما k1 & k2

وتعتمد أيضاً على ASCII CODE و OCTAL CODE

المرحلة الأولى : نفرض أن لدينا النص OMAR ونريد تشفيرة بطريقتي

1- يجب معرفة المفتاحين وهمت هنا فرضاً K1= 46 و k2=152

2 - ننظر الى الحرف الأول من النص O ونقوم بعمل شفت للحرف لليمين مقدار 6 مرات ولليسار 4 مرات أعتماداً على المفتاح الأول 46

وينتج لدينا حرف U لليمين و K لليسار . نأخد الأسكي كود للحرف U وهو 085 والأوكتال للحرف K وهو 113 . ثم نقوم بدمج هذين الرقمين بالمقلوب ليصبح تشفير الحرف الأول هو 085113

والحرف M هو 083111

الحرف A هو 071144

والحرف R هو 088116

وهذه نهاية المرحلة الأول . من لديه فكرة برمجة لها أرجو المساعدة : بانتظاركم

وشكراً

#2

بالرغم أنني أنصحك بأن لا تعتمد علي هذه الفكرة في التشفير خاصة أنه من السهل فك مثل هذه الشفرة .....لكنها وبشكل عام فكرة جيدة في حالة أنك لن تقوم بتشفير أسرارا هامة وخاصة جدا .

عموما الكود التاليي قد يساعدك علي أن تبدأ في كتابة الكود الخاص بعملية Shift للحروف لكن لا تنسي أن الحروف الأبجدية تبدأ بحرف A وتنتهي بحرف Z وبالتالي يجب أن تراعي هذا الأمر عند كتابة الكود وتحديدا القيمة التي سوف تقوم بعمل Shift لها لهذا يوجد شرطا بالكود بحيث أنه وعندما تصل الي حرف U حيث هذا الحرف يمثل تقريبا الحرف الخامس من أسفل وعندما نصل له يجب أن يتم التشفير بشكل عكسي

أتمني أن يكون الكود الموجود أدناه مناسبا لكي تكمل ما تريد

Public Class Form1

    Private Function EncrString(ByVal txt As String) As String

        Dim lowerA As Integer = Asc("a"c)
        Dim lowerZ As Integer = Asc("z"c)
        Dim lowerU As Integer = Asc("u"c)

        Dim upperA As Integer = Asc("A"c)
        Dim upperZ As Integer = Asc("Z"c)
        Dim upperU As Integer = Asc("U"c)

        Dim charArray As Char() = txt.ToCharArray

        For i As Integer = 0 To charArray.Length - 1
            Dim key As Integer = Asc(charArray(i))

            If ((key >= lowerA) AndAlso (key <= lowerZ)) Then
                If (key > lowerU) Then
                    key -= 5
                Else
                    key += 5
                End If
            ElseIf ((key >= upperA) AndAlso (key <= upperZ)) Then
                If (key > upperU) Then
                    key -= 5
                Else
                    key += 5
                End If
            End If
            charArray(i) = Chr(key)
        Next

        Return New String(charArray)

    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim txt As String = Me.Text
        Dim encrTxt As String = Me.EncrString(txt)
        Me.Text = encrTxt
    End Sub

End Class

تم تعديل هذه المشاركة بواسطة a_pess في 20 نوفمبر 2010 في 03:28

#3

الأخ العزيز

بداية شكراً لكم

وبالنسبة لردكم سوف أجرب ذلك وأرد لكم

وشكراً

#4

شكراً لك

لكن في طريقتي اريد أن اعمل شفت بناءً على المفتاح الأول مثلاً 46 فيكون 6 لليمين و4 للشمال وليس قيمة ثابتة 5 .

يا ريت لو تساعدني في الحل

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