Eminim ki birçoğunuz projelerinizde gönderilen ya da saklanan veriyi şifreleme ihtiyacı duymuşsunuzdur. Bu yazıda da bu ihtiyacın Java ortamındaki en meşhur çözümlerinden biri olan BouncyCastle kripto paketini tanıtacağım. BouncyCastle kripto paketi C# ve Java ortamlarında çalışan ve hemen hemen bütün standart algoritmaları destekleyen oldukça başarılı bir çalışma. http://www.bouncycastle.org/ adresinden inceleyebileceğiniz çalışma tamamen Open Source ve indirmek için herhangi bir ücret talep edilmiyor. Java ortamında kurulum içinse öncelikle http://www.bouncycastle.org/latest_releases.html adresinden en son versiyon paketi indirmeniz gerekiyor. (bu yazı yazıldığı sırada 1.45) Zip dosyasını yükledikten sonra /jars klasörüne girerek bcprov-jdk16-145. jar dosyasını bulun. Buradaki isimlendirme yöntemi bcprov-jdk - . jar şeklindedir. bcprov-jdk16-145. jar dosyası Java 1.6 için 1.45 versiyonlu BouncyCastle paketini belirtmektedir. Şimdi yapmamız gereken bu dosyayı C:\Program Files\Java dizini içinde jre kurulumunun olduğu klasörde \lib\ext alt klasörüne kopyalamak. Burada amacımız Java programlarında Şifreleme Servisi olarak BouncyCastle paketini kullanabilmek. Dosyanın kopyalanması bittikten sonra bir üst klasöre dönerek \lib\security alt klasörüne geçiyoruz. Burada java. security dosyasında Şifreleme Servislerine BouncyCastle paketini eklememiz gerekiyor. Dosyada aşağıdaki bölüme son satırı ekliyoruz; security. provider.1=sun. security. provider. Sun security. provider.2=sun. security. rsa. SunRsaSign security. provider.3=com. sun. net. ssl. internal. ssl. Provider security. provider.4=com. sun. crypto. provider. SunJCE security. provider.5=sun. security. jgss. SunProvider security. provider.6=com. sun. security. sasl. Provider security. provider.7=org. jcp. xml. dsig. internal. dom. XMLDSigRI security. provider.8=sun. security. smartcardio. SunPCSC security. provider.9=sun. security. mscapi. SunMSCAPI security. provider.10=org. bouncycastle. jce. provider. BouncyCastleProvider Burada dikkat edilmesi gereken BouncyCastle a vereceğimiz numara. Sizin dosyanızda 5 servis adı varsa security. provider.6 şeklinde tanımlanması gerekiyor. Ayrıca BouncyCastle tanımlaması mutlaka en alt satırda yer almalı. Aksi takdirde JVM çalışma hatası verebiliyor. Bu şekilde kripto servisimiz hazır. Windows kullanıcıları yukarıdaki işlemleri JDK klasörü için tekrarlamak durumunda. Klasör yapısı aynı olduğu için yukarıdaki adımları aynen uygulayabilirsiniz. Kurulum bittikten sonra bir Java projesi açarak BouncyCastle servisinin varlığını aşağıdaki gibi kontrol edebilirsiniz. Key key; KeyGenerator keyGen; Cipher encrypt; Security. addProvider(new BouncyCastleProvider ; try catch encrypt. init ; bOut = new ByteArrayOutputStream ; cOut = new CipherOutputStream ; cOut. write( plaintext. getBytes ; cOut. close ; Yukarıdaki kod hata verirse BouncyCastle paketi doğru kurulmamış demektir. BouncyCastle paketinde desteklenen şifreleme algoritmalarına ve anahtar uzunluklarına http://www.bouncycastle.org/specifications.html#install adresinden ulaşabilirsiniz. Kaynak