30 Mart 2016 Çarşamba

XWPFDocument Sınıfı

Giriş
Bu sınıf .docx belgeleri için kullanılır.

constructor
Şöyle yaparız.
XWPFDocument document = new XWPFDocument(inStream);


WebServiceClient Sınıfı

Giriş
wsimport aracı ile wsdl'den dosyaları ürettikten sonra @WebService ve @WebServiceClient olarak işaretli iki dosya mevcuttur. @WebServiceClient olarak işaretli nesneyi yaratıp metodunu çağırırız.
WebServiceClient client = new WebServiceClient();
AnswerType answer = client.GetSoap().theMethodYouWantUse(some_parameters);
Eğer arayüz üzerinden gitmek çağrı yapmak isterse şöyle yaparız.
HelloWorldImplService helloService = new HelloWorldImplService();
HelloWorld hello = helloService.getHelloWorldImplPort();


22 Mart 2016 Salı

Kripto

SecretKeyFactory Sınıfı
SecretKeyFactory Sınıfı yazısına taşıdım.

KeyGenerator Sınıfı
getInstance metodu
Belirtilen kripto için nesne döndürür.
KeyGenerator keygenerator = KeyGenerator.getInstance("DES");
generateKey metodu
Key nesnesi üretir.
KeyGenerator keygenerator = KeyGenerator.getInstance("DES");
SecretKey myDesKey = keygenerator.generateKey();
SecretKeySpec
Constructor
Şöyle yaparız.
byte[] keyBytes = ...;
SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, "AES");
IvParameterSpec ivParameterSpec = new IvParameterSpec(keyBytes);
Bir string ile şöyle yaparız.
String secretKey = "0123456789abcdef";
SecretKeySpec keyspec = new SecretKeySpec(SecretKey.getBytes(), "AES");
IvParameterSpec
Bu sınıfı bir initialization vector sağlar. CBC modundaki cipher'larda kullanılır.
Constructor
Şöyle yaparız.
byte[] ivBytes = ...;
IvParameterSpec ivParameterSpec = new IvParameterSpec(keyBytes);
Bir string ile şöyle yaparız.
String iv = "fedcba9876543210";
IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
Cipher Sınıfı
Cipher Sınıfı yazısına taşıdım.

CipherOutputStream Sınıfı
Normal bir stream gibi kullanılır. write() flush() metodları vardır. Her stream'de olduğu gibi close() ile kapatılır
Constructor
Şöyle yaparız.
Cipher cipher = ...;
FileOutputStream fos = ...;
CipherOutputStream cos = new CipherOutputStream(fos, cipher);



Bit İşlemleri

Java'da Sayılar Unsigned Değildir
Özellikle C++'tan gelenlerin sıkça yaptığı bir hata. 32 bit sayıların kaydırılması için 64 bit kullanılır. Örneğin aşağıdaki kodda 1 signed bir değişken olduğu için istediğimiz sonucu elde etmeyiz.
938372878L | (1 << 31) //results to -1209110770
Şöyle yapmak gerekir.
938372878L | (1L << 31)
Faydalı metodlar
Java'da bitmask ile çalışmak yerine daha kolay metodlar var. highestOneBit, lowestOneBit, numberOfLeadingZeros, numberOfTrailingZeros gibi. Örnek:
assert 64 == Integer.highestOneBit(65);//00000000000000000000000001000001
assert 2 == Integer.bitCount(65);
assert 6 == 31 - Integer.numberOfLeadingZeros(65);//31 - 25
BitSet Sınıfı
BitSet Sınıfı yazısına taşıdım.