SORU
4 ŞUBAT 2011, Cuma


Java Dize SHA1

Java SHA1 dönüştürücü için basit bir Dize yapmaya çalışıyorum ve bu ne buldum

public static String toSHA1(byte[] convertme) {
    MessageDigest md = null;
    try {
        md = MessageDigest.getInstance("SHA-1");
    }
    catch(NoSuchAlgorithmException e) {
        e.printStackTrace();
    } 
    return new String(md.digest(convertme));
}

Anladım 5**, geçtiğimde "[�bir ɹ�??�%l�3~��." Muhtemelen UTF-8, ama birisi istediğimi elde etmek için ne yapmam gerektiğini bana söyler gibi basit bir kodlama düzeltme olduğunu biliyorum "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8"? Ya bu tamamen yanlış mı yapıyorum?

Çok teşekkürler!

CEVAP
4 ŞUBAT 2011, Cuma


GÜNCELLEME
Apache Commons Codec (sürüm 1.7 ) sizin için bu işi yapmak için kullanabilirsiniz.

DigestUtils.sha1Hex(stringToConvertToSHexRepresentation)

Bu öneri için 10* *@için teşekkürler.


Eski Cevap
Bayt dizinizi Dize Hex dönüştürmek. Real's How To tells you how.

return byteArrayToHexString(md.digest(convertme))

ve Nasıl Gerçek kopyalanmış ()

public static String byteArrayToHexString(byte[] b) {
  String result = "";
  for (int i=0; i < b.length; i  ) {
    result  =
          Integer.toString( ( b[i] & 0xff )   0x100, 16).substring( 1 );
  }
  return result;
}

BTW, daha kompakt gösterimi Base64 kullanarak alabilirsiniz.Apache Commons API 1.4 Kodekbütün acısını bu güzel programı var. refer here

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • NightShader1

    NightShader1

    25 Temmuz 2006
  • RiceBunny

    RiceBunny

    16 ŞUBAT 2006
  • UniqueApps

    UniqueApps

    4 Ocak 2009