11 Ağustos 2017 Cuma

PGP

gpg --list-keys
To list defined public keys on the system

gpg --list-secret-keys
To list defined private keys on the system

gpg --import COMPANY.sec
To import private key

gpg --import public_key.asc
To import public key for partner

gpg --encrypt example.txt
To encrypt the file, output as example.pgp

gpg  --output example.txt  --decrypt example.gpg
To decrypt the file example.pgp, output as example.txt

gpg --edit-key <KEY> trust
or
gpg --edit-key (ID of partner key)
Choose ultimate trust.
To give permission to use pgp keys for every files.

Note: Every user has its own gpg keyring so everyone should import their own keys

Related Source: http://www.spywarewarrior.com/uiuc/gpg/gpg-com-4.htm

5 Mayıs 2017 Cuma

Integer bir değerin String değere çeviren algoritma



Girilen sayının %10 u yani mod 10 da diyebiliriz sanıyorum, kalanlar sırasıyla 1,9,8,7,6,5,4,3,2,1 rakamlar olacaktır. Bunları String bir değerde peş peşe tutarsak "1987654321" olacaktır. Bu String değerinin ise yine tersini almalıyım ki ilk girilen rakamın string halini bulmuş olayım. Bunun için String değerin 0.index ini en son index'e , en son index'i ise en baştaki 0. indexe atmalıyım, şeklinde bir algoritma üretebiliriz.

Not: Java'da reverse alabilen farklı algoritmalar mevcut, ör: StringBuilder("...değer ..").reverse().


  • Bir public main class içinde aşağıdaki kodları uygulayalım;


public static void main(String[] args) {

int input =1234567891;

String result =  numberToString(input);
System.out.println("numberToString=" + result);
}

public static String numberToString(int num) {
String result = "";
String stringValue = null;
while (num > 0) {
int rem = num % 10;

result += rem;
num = num / 10;
}
System.out.println("Reverse:" + result);
stringValue = reverse(result);
              //new StringBuilder(result).reverse().toString(); kullanılabilir.
  
return stringValue;
}


  • String bir değerin harflerini /indexler üzerinden, Reverse methodunu birden farklı şekilde olabilir, araştırdıklarımdan sadece 2 tanesini vereceğim.

1. Yöntem;
public static String Reverse(String input) {
char[] in = input.toCharArray();
int begin = 0;
int end = in.length - 1;
char temp;
while (end > begin) {
temp = in[begin];
in[begin] = in[end];
in[end] = temp;
end--;
begin++;
}
return new String(in);
}

2.Yöntem daha kısa kod, recursive algoritma şeklinde;

"1987654321" string değerinin

  • 0.index'i 1
  • 1.index' ise 9 dur gördüğünüz üzere.Öyle bir algoritmam olsun ki , bir döngü içinde ilk indexi alıp (charAt(0) fonksiyonu) ,ilk index'ten sonraki kalan değerini alsın (substring(1) fonksiyonu) ve en sonuna yazsın, En sondaki index olan "1" değerini de attıktan sonra döngüden çıksın. Şahsen az beynim yanmadı desem ilk başta yalan olur:)



public static String reverse(String s) {
if (s.length() <= 1) {
return s;
}
return reverse(s.substring(1))   +    s.charAt(0);
}