Dengan melihat-lihat di sini dan juga internet secara umum, saya telah menemukan Bouncy Castle . Saya ingin menggunakan Bouncy Castle (atau beberapa utilitas lain yang tersedia secara gratis) untuk menghasilkan Hash SHA-256 dari String di Java. Melihat dokumentasi mereka, saya tidak dapat menemukan contoh bagus tentang apa yang ingin saya lakukan. Adakah yang bisa membantu saya?
java
bouncycastle
sha256
jce
knpwrs.dll
sumber
sumber
digest
keadaan internal diatur ulang; jadi ketika Anda memanggilnya lagi tanpa memperbarui sebelumnya, Anda mendapatkan hash dari string kosong.digest
String lagi?Ini sudah diterapkan di runtime libs.
Dalam lingkungan JEE6 +, seseorang juga dapat menggunakan JAXB DataTypeConverter :
sumber
Anda tidak perlu perpustakaan BouncyCastle. Kode berikut menunjukkan bagaimana melakukannya menggunakan fungsi Integer.toHexString
Terima kasih khusus kepada user1452273 dari posting ini: Bagaimana cara melakukan hash beberapa string dengan sha256 di Java?
Pertahankan kerja bagus!
sumber
Saat menggunakan kode hash dengan penyedia jce apa pun, pertama-tama Anda mencoba untuk mendapatkan contoh algoritme, lalu memperbaruinya dengan data yang ingin Anda hash dan setelah selesai Anda memanggil intisari untuk mendapatkan nilai hash.
Anda dapat menggunakan intisari untuk mendapatkan versi yang dikodekan base64 atau hex sesuai dengan kebutuhan Anda
sumber
digest()
menggunakan array byte input, melewatkanupdate()
?String.getBytes()
tanpa menentukan pengkodean. Saat ini kode ini dapat memberikan hasil yang berbeda pada platform yang berbeda - yang merupakan perilaku rusak untuk hash yang terdefinisi dengan baik.Java 8: Base64 tersedia:
sumber
Saya kira Anda menggunakan Versi Java yang relatif lama tanpa SHA-256. Jadi, Anda harus menambahkan Penyedia BouncyCastle ke 'Penyedia Keamanan' yang sudah disediakan dalam versi java Anda.
sumber
sumber
return Hex.encodeHexString(digest)
sebagai gantinya.Menggunakan Java 8
sumber
Ini akan bekerja dengan paket berikut "org.bouncycastle.util.encoders.Hex"
Ada dalam toples bouncycastle.
sumber