نمایش نتایج 1 تا 19 از 19

نام تاپیک: Encode و Decode کردن یک رشته

  1. #1

    Question Encode و Decode کردن یک رشته

    سلام دوستان . من میخام یه متن رو در ویبی دات نت اینکد و دیکد کنم .
    شما چه راهی به من پیشنهاد میکنید .
    اگه سورس بزارید خیلی خیلی ممنون میشم .

  2. #2

    نقل قول: Encode و Decode کردن یک رشته

    بستگی به مقصودت داره
    میتونی از Base64 استفاده کنی .
    میتونی خودت یدونه کاستوم ایجاد کنی
    اگه مقاصد امنیتی مد نظرته باید یه الگوریتم رمزگذاری استفاده کنی.
    We work in the dark, we do what we can, we give what we have.
    Our doubt is our passion and our passion is our task.
    The rest is the madness of art

  3. #3
    کاربر دائمی آواتار nokhodsiah2001
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    مشهد
    پست
    222

    نقل قول: Encode و Decode کردن یک رشته

    سلام من این کار رو کردم البته خودم یک متد من درآوردی رو برای کارم انتخاب کردم ولی من زیاد نیاز به امنیت نداشتم فقط می خواستم یک سری کاراکترهایی داشته باشم که کاربر معمولی سر در نیاره

  4. #4
    کاربر دائمی آواتار parsehvb
    تاریخ عضویت
    آذر 1387
    محل زندگی
    جلوی کامپیوتر
    پست
    124

    نقل قول: Encode و Decode کردن یک رشته

    این مثال رو نگاه کن ببین به دردت می خوره منبعش رو فراموش کردم
    فایل های ضمیمه فایل های ضمیمه

  5. #5

    نقل قول: Encode و Decode کردن یک رشته

    نقل قول نوشته شده توسط parsehvb مشاهده تاپیک
    این مثال رو نگاه کن ببین به دردت می خوره منبعش رو فراموش کردم
    سلام . خیلی ممنون از زحمتی که کشیده بودی .
    البته برنامه یه مشکل داشت .
    ولی منظور من اینکد کردن فایل نبود . منظور من این بود که یه رشته متنی رو چه طوری به حروف نامفهوم تبدیل کنیم و بعد دوباره اون رو دیکد ( حالت قبل از اینکد کردن ) کنیم .
    با تشکر ............................

  6. #6
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

    نقل قول: Encode و Decode کردن یک رشته

    سلام دوست من
    برای این کار راه حل زیاده، خود دات نت تقریبا تمامی الگوریتمهای رمزنگاری معروف رو توی فضانام(NameSpace) System.Security.Cryptography داره.
    الا ایحال من دو تا قطعه کد کوچولو که از الگوریتم RSA استفاده شده برات میزارم ، امیدوارم بدردت بخوره!!
    برای رمزکردن(Encrypt) :
        Public Function Encrypt(ByVal Parameters As RSAParameters, ByVal DataToEcrypt() As Byte) As Byte()
    Dim ERSA As RSACryptoServiceProvider = RSA.Create
    ERSA.ImportParameters(Parameters)
    Return ERSA.Encrypt(DataToEcrypt, True)
    End Function

    برای باز کردن رمز(Decrypt) :
        Public Function Decrypt(ByVal Parameters As RSAParameters, ByVal DataToDecrypt() As Byte) As Byte()
    Dim DRSA As RSACryptoServiceProvider = RSA.Create
    DRSA.ImportParameters(Parameters)
    Return DRSA.Decrypt(DataToDecrypt, True)
    End Function

  7. #7
    کاربر دائمی آواتار .:KeihanCPU:.
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    همین اطراف
    پست
    1,169

    نقل قول: Encode و Decode کردن یک رشته

    ممنون از شما mostafaaa
    با استفاده از کدهای بالا چطور میتونم مثلا کلمه salam رو Encrypt کنم؟

  8. #8
    کاربر دائمی آواتار nokhodsiah2001
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    مشهد
    پست
    222

    نقل قول: Encode و Decode کردن یک رشته

    سلام

    keihan عزیز برات توضیح دادم فکر کنم این کمکت کنه البته فقط در مورد اعداد تهیه شده میتونی برای حروف هم تکمیلش کنی اگر کردی برای بقیه هم بذار تا استفاده کنن




    PublicFunction Coder(ByVal Tool AsInteger, ByVal adad AsString) As codeed
    Dim i AsInteger
    'cu = TxtName.Text.Length طول رمز
    Dim Pass(Tool) AsString
    Dim PassSave(Tool) AsString
    Dim strcodshodeh AsString = ""

    i = 0
    DoWhile i < Tool

    Pass(i) = Val(adad(i))
    SelectCase Pass(i)
    Case 0
    PassSave(i) =
    "P"
    ExitSelect
    Case 1
    PassSave(i) =
    "a"
    ExitSelect
    Case 2
    PassSave(i) =
    "@"
    ExitSelect
    Case 3
    PassSave(i) =
    "R"
    ExitSelect
    Case 4
    PassSave(i) =
    "#"
    ExitSelect
    Case 5
    PassSave(i) =
    "W"
    ExitSelect
    Case 6
    PassSave(i) =
    "$"
    ExitSelect
    Case 7
    PassSave(i) =
    "*"
    ExitSelect
    Case 8
    PassSave(i) =
    "~"
    ExitSelect
    Case 9
    PassSave(i) =
    "!"
    ExitSelect

    EndSelect
    i = i + 1
    Loop
    SelectCase Tool
    Case 1
    strcodshodeh = (PassSave(0))
    ExitSelect
    Case 2
    strcodshodeh = (PassSave(1) & PassSave(0))
    ExitSelect
    Case 3
    strcodshodeh = (PassSave(2) & PassSave(1) & PassSave(0))
    ExitSelect
    Case 4
    strcodshodeh = (PassSave(3) & PassSave(2) & PassSave(1) & PassSave(0))
    ExitSelect
    Case 5
    strcodshodeh = (PassSave(4) & PassSave(3) & PassSave(2) & PassSave(1) & PassSave(0))
    ExitSelect
    Case 6
    strcodshodeh = (PassSave(5) & PassSave(4) & PassSave(3) & PassSave(2) & PassSave(1) & PassSave(0))
    ExitSelect
    Case 7
    strcodshodeh = (PassSave(6) & PassSave(5) & PassSave(4) & PassSave(3) & PassSave(2) & PassSave(1) & PassSave(0))
    ExitSelect
    Case 8
    strcodshodeh = (PassSave(7) & PassSave(6) & PassSave(5) & PassSave(4) & PassSave(3) & PassSave(2) & PassSave(1) & PassSave(0))
    ExitSelect
    Case 9
    strcodshodeh = (PassSave(8) & PassSave(7) & PassSave(6) & PassSave(5) & PassSave(4) & PassSave(3) & PassSave(2) & PassSave(1) & PassSave(0))
    ExitSelect
    Case 10
    strcodshodeh = (PassSave(9) & PassSave(8) & PassSave(7) & PassSave(6) & PassSave(5) & PassSave(4) & PassSave(3) & PassSave(2) & PassSave(1) & PassSave(0))
    ExitSelect



    EndSelect
    Coder.Code_Shodeh = strcodshodeh
    EndFunction

    PublicFunction DeCoder(ByVal Tool AsInteger, ByVal harf AsString) As Decodeed
    Dim i AsInteger
    Dim StrDecodeh AsString = ""
    'cu = TxtName.Text.Length طول رمز
    Dim Pass(Tool) AsString
    Dim PassSave(Tool) AsString

    i = 0
    DoWhile i < Tool


    Pass(i) = harf(i)
    SelectCase Pass(i)
    Case"P"
    PassSave(i) = "0"
    ExitSelect
    Case"a"
    PassSave(i) = "1"
    ExitSelect
    Case"@"
    PassSave(i) = "2"
    ExitSelect
    Case"R"
    PassSave(i) = "3"
    ExitSelect
    Case"#"
    PassSave(i) = "4"
    ExitSelect
    Case"W"
    PassSave(i) = "5"
    ExitSelect
    Case"$"
    PassSave(i) = "6"
    ExitSelect
    Case"*"
    PassSave(i) = "7"
    ExitSelect
    Case"~"
    PassSave(i) = "8"
    ExitSelect
    Case"!"
    PassSave(i) = "9"
    ExitSelect
    EndSelect
    i = i + 1
    Loop
    SelectCase Tool
    Case 1
    StrDecodeh = (PassSave(0))
    ExitSelect
    Case 2
    StrDecodeh = (PassSave(1) & PassSave(0))
    ExitSelect
    Case 3
    StrDecodeh = (PassSave(2) & PassSave(1) & PassSave(0))
    ExitSelect
    Case 4
    StrDecodeh = (PassSave(3) & PassSave(2) & PassSave(1) & PassSave(0))
    ExitSelect
    Case 5
    StrDecodeh = (PassSave(4) & PassSave(3) & PassSave(2) & PassSave(1) & PassSave(0))
    ExitSelect
    Case 6
    StrDecodeh = (PassSave(5) & PassSave(4) & PassSave(3) & PassSave(2) & PassSave(1) & PassSave(0))
    ExitSelect
    Case 7
    StrDecodeh = (PassSave(6) & PassSave(5) & PassSave(4) & PassSave(3) & PassSave(2) & PassSave(1) & PassSave(0))
    ExitSelect
    Case 8
    StrDecodeh = (PassSave(7) & PassSave(6) & PassSave(5) & PassSave(4) & PassSave(3) & PassSave(2) & PassSave(1) & PassSave(0))
    ExitSelect
    Case 9
    StrDecodeh = (PassSave(8) & PassSave(7) & PassSave(6) & PassSave(5) & PassSave(4) & PassSave(3) & PassSave(2) & PassSave(1) & PassSave(0))
    ExitSelect
    Case 10
    StrDecodeh = (PassSave(9) & PassSave(8) & PassSave(7) & PassSave(6) & PassSave(5) & PassSave(4) & PassSave(3) & PassSave(2) & PassSave(1) & PassSave(0))
    ExitSelect

    EndSelect
    DeCoder.DeCode_Shodeh = StrDecodeh
    EndFunction

  9. #9
    کاربر دائمی آواتار nokhodsiah2001
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    مشهد
    پست
    222

    نقل قول: Encode و Decode کردن یک رشته

    البته این نمونه رو من برای آزمایش موضوع برات ساختم بقیش با خودت

  10. #10
    کاربر دائمی آواتار parsehvb
    تاریخ عضویت
    آذر 1387
    محل زندگی
    جلوی کامپیوتر
    پست
    124

    نقل قول: Encode و Decode کردن یک رشته

    nokhodsiah2001 عزیز با قدر دانی از جوابتون و وقتی که گذاشتید چند نکته را یادآوری می کنم
    این روشی که شما گذاشتید فکر کنم برای برنامه های کوچک خانگی فقط به درد بخوره زیرا در برنامه های بزرگ به این ترتیب برای هر نوع فیلدی یا داده ای بایستی از یک نوع روش رمزنگاری استفاده کرد که این برای برنامه نویس قدری پر زحمت و غیر قابل اجرا می شود با این حال روشی که دوست عزیزمون آقای mostafaaa نوشتند عملی تر و اجرائی تر است و نیاز به کار پیچیده ای هم نداشته و امنیت آن نیز بسیار بیشتر از این روش می باشد

  11. #11
    کاربر دائمی آواتار #target
    تاریخ عضویت
    دی 1387
    محل زندگی
    استان گلستان
    پست
    589

    نقل قول: Encode و Decode کردن یک رشته

    برنامه Secure Text v1.6 حتما کمکت می کنه
    Http://securetext.persiangig.ir

  12. #12
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

    نقل قول: Encode و Decode کردن یک رشته

    نقل قول نوشته شده توسط .:KeihanCPU:. مشاهده تاپیک
    ممنون از شما mostafaaa
    با استفاده از کدهای بالا چطور میتونم مثلا کلمه salam رو Encrypt کنم؟
    سلام دوست من
    همونطور که میدونید الگوریتم رمزنگاری RSA یک نوع الگرویتم رمزنگاری بر پایه Public key هستش به این معنی که ما برای رمز کردن اطلاعاتمون از یک کلید عمومی استفاده میکنیم و برای رمزگشایی از یک کلید خصوصی و همین امر امنیت اینگونه از الگوریتمها رو بسیار بالا برده .
    چون منطق این گونه از الگوریتمها یک منطق عددی و ریاضی برای رمز کردن یک رشته اون را باید به صورت رشته ای از Byte ها درش بیاریم . به مثال زیر توجه کنید(البته این فقط کد Encrypt کردنه و Decrypt کردن هم دقیقا برعکس همین کار که اگه این رو بفهمید برعکسش رو هم میتونید به را حتی خودتون انجام بدید):
    Imports System.Security.Cryptography
    Imports System.Text
    Module Module1
    Private CRSA As RSA
    Private PrivateKey As RSAParameters
    Dim PublicKey As RSAParameters
    Sub Main()
    CRSA = New RSACryptoServiceProvider
    Console.WriteLine("Generate Private Key...")
    PrivateKey = CRSA.ExportParameters(True)
    Console.WriteLine()
    Console.WriteLine("Generate Public Key...")
    PublicKey = CRSA.ExportParameters(False)
    Console.WriteLine()
    Dim DataToEncrypt() As Byte = Encoding.ASCII.GetBytes("Sallam")
    Console.WriteLine("Encrypting Data... ")
    Dim EncryptedData() As Byte = Encrypt(PublicKey, DataToEncrypt)
    Console.WriteLine("Encryptions successful")
    End Sub

    Public Function Encrypt(ByVal Parameters As RSAParameters, ByVal DataToEcrypt() As Byte) As Byte()
    Dim ERSA As RSACryptoServiceProvider = RSA.Create
    ERSA.ImportParameters(Parameters)
    Return ERSA.Encrypt(DataToEcrypt, True)
    End Function

    Public Function Decrypt(ByVal Parameters As RSAParameters, ByVal DataToDecrypt() As Byte) As Byte()
    Dim DRSA As RSACryptoServiceProvider = RSA.Create
    DRSA.ImportParameters(Parameters)
    Return DRSA.Decrypt(DataToDecrypt, True)
    End Function
    End Module

    موضوعی مهمی رو که باید توجه داشته باشید اینه که کلید عمومی و خصوصی را باید از روی یه instance از کلاس RSA درست کنید و اگه اینجور نباشه شما قادر نیستید تا اطلاعاتتون رو دوباره Decrypt کنید.
    در آخر اگه بد توضیح دادم عضر میخوام چون مطالب در مورد رمزنگاری زیاده و نمیدونم کدوم قسمتش رو بگم که مطلب دقیق براتون جا بیفته.
    یا علی

  13. #13
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

    نقل قول: Encode و Decode کردن یک رشته

    سلام دوستان
    خوب گویا با استفاده از کدهای بالا مشکل دوستمون حل نشده. بنابراین من یه کلاس ساده نوشتم که با استفاده از اون به راحتی میتونید یه متن را Encrypt و Decrypt کنید :
    Imports System.IO
    Imports System.Text
    Imports System.Security.Cryptography
    Public Class Encryptor
    Private RJ As Rijndael = Rijndael.Create
    Private MD As New MD5CryptoServiceProvider
    Private Function Md5Hash(ByVal Value As String) As Byte()
    Return MD.ComputeHash(ASCIIEncoding.ASCII.GetBytes(Value) )
    End Function
    Public Function EncryptText(ByVal TextToEncrypt As String, ByVal Key As String) As String
    RJ.Key = Md5Hash(Key)
    RJ.Mode = CipherMode.ECB
    Dim ToEncrypt As Byte() = Encoding.ASCII.GetBytes(TextToEncrypt)
    Return Convert.ToBase64String(RJ.CreateEncryptor().Transf ormFinalBlock(ToEncrypt, 0, ToEncrypt.Length))
    End Function
    Public Function DecryptText(ByVal EncryptedText As String, ByVal Key As String) As String
    Try
    RJ.Key = Md5Hash(Key)
    RJ.Mode = CipherMode.ECB
    Dim ToDecrypt As Byte() = Convert.FromBase64String(EncryptedText)
    Return ASCIIEncoding.ASCII.GetString(RJ.CreateDecryptor() .TransformFinalBlock(ToDecrypt, 0, ToDecrypt.Length))
    Catch ex As Exception
    MessageBox.Show("Invalid Key", "Decryption Failed", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    Return Nothing
    End Try
    End Function
    End Class


    پی نوشت : توی این کلاس از یکی از الگوریتمهای کلید متقارن به نام Rijndael که یک الگوریتم قدرتمند هست استفاده کردم ، امیدوارم مشکلتون با این حل بشه.
    یا علی

  14. #14

    نقل قول: Encode و Decode کردن یک رشته

    سلام . خیلی ممنون از کمک دوستان . اگه لطف کنید و یه سورس قرار بدید فکر کنم بهتر باشه .
    البته اگه براتون زحمتی نیست .
    با تشکر از همه شما دوستان عزیز ...................

  15. #15
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

    نقل قول: Encode و Decode کردن یک رشته

    سلام دوست من
    پس این که من گذاشتم چیه ؟؟؟؟؟؟!
    این کلاس که دیگه هلو برو تو گلویه !!
    یه نمونه ازش میگیری و با استفاده از دوتا متدی که داره و یه کلید(که البته میتونه هر چی باشه) رشته ها رو کد و دیکد میکنی ، مثلا
    کد کردن :
            Dim Encrypt As New Encryptor
    MsgBox(Encrypt.EncryptText("Hello world", "Anything"))
    که خروجی زیر رو خواهیم داشت :
    Iqp5jIimx0Iquqe5dWEKLA==
    حالا اگه همین خروجی رو به عنوان متن رمز شده و با همون کلید به متد DecryptText بدی :
            Dim Decrypt As New Encryptor
    MsgBox(Decrypt.DecryptText("Iqp5jIimx0Iquqe5dWEKLA ==", "Anything"))
    خروجیمون Hello wold خواهد بود .
    یا علی

  16. #16
    کاربر دائمی آواتار masoud.t123
    تاریخ عضویت
    آبان 1387
    محل زندگی
    غرب تهران
    پست
    282

    نقل قول: Encode و Decode کردن یک رشته

    با عرض سلام خدمت آقا mostafaaa
    -بنده می خواستم با System.Security.Cryptography بیشتر آشنا شوم مقاله آموزشی فارسی یا انگلیسی در این باره سراغ ندارید؟
    DES-و AES و 3DES و RC4 و MD5 و SHA1 - 256 -384 -512 جز همین فضا نام هستند؟
    -hash یعنی چه؟
    با تشکر فراوان از شما

  17. #17

    نقل قول: Encode و Decode کردن یک رشته

    با تشکر از همه دوستان .......................

  18. #18
    کاربر دائمی آواتار shask00l
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    روی پاهای خودم
    سن
    38
    پست
    387

  19. #19
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

    نقل قول: Encode و Decode کردن یک رشته

    نقل قول نوشته شده توسط masoud.t123 مشاهده تاپیک
    با عرض سلام خدمت آقا mostafaaa
    -بنده می خواستم با System.Security.Cryptography بیشتر آشنا شوم مقاله آموزشی فارسی یا انگلیسی در این باره سراغ ندارید؟
    DES-و AES و 3DES و RC4 و MD5 و SHA1 - 256 -384 -512 جز همین فضا نام هستند؟
    -hash یعنی چه؟
    با تشکر فراوان از شما
    سلام بله تقریبا تمامی اینها که نام بردید در همین NameSpace وجود دارند.
    در مورد مقاله هم اگه توی اینترنت یه جستجوی کوچیک بکنی کلی مطلب مفید پیدامیکنی .
    اگه دنبال e.book هم میگردید پیشنهاد میکنم اول از این (http://www.scribd.com) سایت شروع کنید.
    یا علی

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •