Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

[java] verschlüsselungsmethoden

EDROD / 9 Antworten / Flachansicht Nickles

moin :)


da ich in java noch nicht mit verschluesslungsalgorithmen gearbeitet habe, bin ich mir nicht sicher ob folgender code das macht was er soll: einen string verschlüsseln und das ergebnis zurückgeben


public

class Start
{
  public static void
main(String[] args)
  {
    String message =
"huhu"
;
    System.out.println(message +
" = "
+ verschluessle(message));
  }

  public static String verschluessle(String s)
  {
    byte
[] bytearr = s.getBytes();
    MessageDigest md;
    String verschluesselt =
new
String();
    try
    {
      md = MessageDigest.getInstance(
"md5"
);
      md.digest(bytearr);
      verschluesselt = bytearr.toString();
    }
    catch
(NoSuchAlgorithmException nsa)
    {
      System.out.println(nsa.getMessage());
     }
    return
verschluesselt;
  }
}

da die laenge des ergebnisses mich stutzig gemacht hat, hab ich mal in php mit md5() probiert, ob ich da das selbe rausbekomm... war ned der fall

nun weiss ich nicht ob es an den möglicherweise verschiedenen verschlüsselungsalgorithmen "md5" in java und md5() in php liegt oder an meinem code >.<


bedanke mich schonmal im voraus 8)

bei Antwort benachrichtigen
editieren verboten ò_ô EDROD
EDROD Nachtrag zu: „[java] verschlüsselungsmethoden“
Optionen
Wie extrahiere ich von einem Element in einem Byte Array das obere und untere halbbit?
es heisst halbbyte, sry mein fehler...
ich kopier einfach den code von meiner funktion hier rein, wenn du dich nicht für einsen und nullen interessierst kannst du damit strings verschluesseln ohne dich erst damit auseinandersetzen zu müssen, wenn du interesse dran hast, http://www.elektronik-kompendium.de/sites/dig/#1 ^^

public static String verschluessle(String s)
{
    byte[] bytearr = s.getBytes();
    MessageDigest md;
    String verschluesselt = new String();
    try
    {
        bytearr = MessageDigest.getInstance("md5").digest(bytearr);
        StringBuffer sb = new StringBuffer(bytearr.length * 2);
        int i, oberes, unteres; // halbbytes
        for (i=0; i         {
        oberes = (int) ((bytearr[i] & 0xf0) >>> 4);
        unteres = (int) (bytearr[i] & 0x0f);
        sb.append( Integer.toString(oberes, 16) + Integer.toString(unteres, 16) );
        }
        verschluesselt = sb.toString();
    }
    catch(NoSuchAlgorithmException nsa)
    {
        System.out.println(nsa.getMessage());
    }
    return verschluesselt;
}


Wie entschlüssele ich einen verschlüsselten String wieder?
es gibt natürlich mittel und wege dazu, aber der algorithmus ist so konzipiert, dass er nur in eine richtung verschlüsseln kann; nicht wieder zurück
bei Antwort benachrichtigen