PHP Encryption Decryption Visual Basic Encryption Decryption

  • Allgemein

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Agita.

    PHP Encryption Decryption Visual Basic Encryption Decryption

    Hallo liebe vb-paradiesler.

    Mein Problem ist volgendes: ich encrypte / decrypte in PHP mit folgendem Code:

    PHP-Quellcode

    1. <?php
    2. function decrypt($string, $key) {
    3. $result = '';
    4. $string = base64_decode($string);
    5. for($i=0; $i<strlen($string); $i++) {
    6. $char = substr($string, $i, 1);
    7. $keychar = substr($key, ($i % strlen($key))-1, 1);
    8. $char = chr(ord($char)-ord($keychar));
    9. $result.=$char;
    10. }
    11. return $result;
    12. }
    13. function encrypt($string, $key) {
    14. $result = '';
    15. for($i=0; $i<strlen ($string); $i++) {
    16. $char = substr($string, $i, 1);
    17. $keychar = substr($key, ($i % strlen($key))-1, 1);
    18. $char = chr(ord($char)+ord($keychar));
    19. $result.=$char;
    20. }
    21. return base64_encode($result);
    22. }
    23. ?>



    Wie kann ich direkt die gleiche Methode in Visual Basic benutzen ?

    Oder welche anderen Möglichkeiten habe ich ?

    VB.NET-Quellcode

    1. Public Function decrypt(enc As String, key As String) As String
    2. Dim dec As String = ""
    3. For i As Integer = 0 To enc.Length - 1
    4. dec += Chr(Asc(CChar(enc.Substring(i, 1))) - Asc(CChar(key.Substring((i Mod key.Length), 1))))
    5. Next
    6. Return dec
    7. End Function
    8. Public Function encrypt(dec As String, key As String) As String
    9. Dim enc As String = ""
    10. For i As Integer = 0 To dec.Length - 1
    11. enc += Chr(Asc(CChar(dec.Substring(i, 1))) + Asc(CChar(key.Substring((i Mod key.Length), 1))))
    12. Next
    13. Return enc
    14. End Function


    aber ungetestet

    edit: und nein, deine funktionen sind kein base64! das ist ein komplett anderer algorythmus, der die bits aneinander reiht und neu aufsplittet.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Agita“ ()

    @Agita, danke für deine Antwort.

    Jedoch bekomme ich bei encrypt & decrypt immer folgenden Error:

    ArgumentOutOfRangeException wurde nicht behandelt "StartIndex cannot be less than zero." angestrichen ist die längste Code Zeile.

    Edit:

    VB.NET-Quellcode

    1. Dim x As String = decrypt("emaJqHGSZJhunq2Mf6g=", "67c6a1e7ce56d3d6fa748ab6d9af3fd7")
    2. TextBox1.Text = x
    3. Dim y As String = encrypt("C0RE;1337;HWID", "67c6a1e7ce56d3d6fa748ab6d9af3fd7")
    4. TextBox2.text = y
    hab die 2 funktionen bearbeitet. aber es gibt da einen anderen fehler.

    denn du nummst in der funktion:
    chr(ord(x) - ord(y))

    was ist aber wenn dann das raus kommt:
    chr(97 - 99)

    denn das ist was nun passiert. es kommt raus "-2" und chr() gibt da eine fehlermeldung da es kein zeichen im negativen bereich gibt. bist du dir sicher, dass deine 2 funktionen so funktionieren wie sie sollen?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Agita“ ()

    PHP-Quellcode

    1. <?php
    2. function encrypt($string, $key) {
    3. $result = '';
    4. for($i=0; $i<strlen ($string); $i++) {
    5. $char = substr($string, $i, 1);
    6. $keychar = substr($key, ($i % strlen($key))-1, 1);
    7. $char = chr(ord($char)+ord($keychar));
    8. $result.=$char;
    9. }
    10. return base64_encode($result);
    11. }
    12. ?>


    $x = encrypt("C0RE;1337;HWID","67c6a1e7ce56d3d6fa748ab6d9af3fd7") == "emaJqHGSZJhunq2Mf6g="
    wurde durch diese Funktion encrypted.

    Agita schrieb:

    was ist aber wenn dann das raus kommt:
    chr(97 - 99)
    Vielleicht so:

    VB.NET-Quellcode

    1. Dim a As Byte = 97
    2. Dim b As Byte = 99
    3. Dim c As Byte
    4. If a < b Then
    5. c = CByte(255 - (b - a))
    6. Else
    7. c = a - b
    8. End If
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    mach doch eine xor-verschlüsselung draus (vielleicht hattest du ja das von anfang an vor?)

    PHP-Quellcode

    1. function decrypt($string, $key) {
    2. $result = '';
    3. $string = base64_decode($string);
    4. for($i=0; $i<strlen($string); $i++) {
    5. $result .= chr(ord(substr($string, $i, 1)) ^ ord(substr($key, $i % strlen($key), 1)));
    6. }
    7. return $result;
    8. }
    9. function encrypt($string, $key) {
    10. $result = '';
    11. for($i=0; $i<strlen ($string); $i++) {
    12. $result .= chr(ord(substr($string, $i, 1)) ^ ord(substr($key, $i % strlen($key), 1)));
    13. }
    14. return base64_encode($result);
    15. }


    VB.NET-Quellcode

    1. Public Function decrypt(enc As String, key As String) As String
    2. Dim dec As String = ""
    3. enc = System.Text.Encoding.Default.GetString(System.Convert.FromBase64String(enc))
    4. For i As Integer = 0 To enc.Length - 1
    5. dec += Chr(Asc(CChar(enc.Substring(i, 1))) Xor Asc(CChar(key.Substring((i Mod key.Length), 1))))
    6. Next
    7. Return dec
    8. End Function
    9. Public Function encrypt(dec As String, key As String) As String
    10. Dim enc As String = ""
    11. For i As Integer = 0 To dec.Length - 1
    12. enc += Chr(Asc(CChar(dec.Substring(i, 1))) Xor Asc(CChar(key.Substring((i Mod key.Length), 1))))
    13. Next
    14. enc = System.Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(enc))
    15. Return enc
    16. End Function