Sen robot üzerinde SharedPreference kullanarak RSA ortak/özel anahtar devam edebilir. Telefon kötüye kullanıldığında, anahtarlarınızı güvende tutabilmek için aşağıdaki adımları gerçekleştirebilirsiniz:
1: Herhangi bir veriyi ne zaman arşivlemek istediğinizde bir anahtar çifti oluşturun.
2: Kullanıcıya bir parola sor.
3: Özel anahtarınızı şifrelemek için simetrik anahtar oluşturmak üzere bu parolayı kullanın.
4: Verilerinizi ortak anahtarı kullanarak şifreleyebilir ve özel anahtarı kullanarak şifresini çözebilirsiniz.
5: 2. adımda sorulan parola için bir oturumu saklayabilirsiniz. Bu oturum sırasında, özel anahtarı şifrelemek/şifresini çözmek için simetrik anahtarı (paroladan oluşturulur) kullanabilirsiniz.
Aşağıdaki kod parçası
Aşağıdaki kod parçası & özel anahtarı getir nasıl depolanacağı gösterir & genel anahtar
public void setPublicKey(PublicKey publicKey, String key, Context context) {
byte[] pubKey = publicKey.getEncoded();
String pubKeyString = Base64.encodeBytes(pubKey);
this.setString(key, pubKeyString, context);
}
public PublicKey getPublicKey(String key,Context context) {
PublicKey pKey = null;
try {
String pubString = this.getString(key, context);
if(pubString!=null) {
byte[] binCpk = Base64.decode(pubString);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(binCpk);
pKey = keyFactory.generatePublic(publicKeySpec);
}
}catch(Exception e){
}
return pKey;
}
getirme nasıl depolanacağı gösterir.
public void setPrivateKey(PrivateKey privateKey, String key, Context context) {
byte[] priKey = privateKey.getEncoded();
String priKeyString = Base64.encodeBytes(priKey);
this.setString(key, priKeyString, context);
}
public PrivateKey getPrivateKey(String key, Context context) {
PrivateKey privateKey = null;
try {
String privateString = this.getString(key, context);
if(privateString!=null){
byte[] binCpk = Base64.decode(privateString);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(binCpk);
privateKey = keyFactory.generatePrivate(privateKeySpec);
}
}
catch(Exception e){
}
return privateKey;
}
@LokiSinclair İstediğiniz yerde herkese açık anahtarı koyabilirsiniz ve istediğiniz herkese gösterebilirsiniz, bu yüzden bu halka açıktır. Yani özel anahtar ile saklamak iyidir. Özel anahtarı güvenli bir yerde saklamanız yeterlidir. – Peanut
@LokiSinclair Üzgünüz ama bu yanlış. Özel anahtarlar, mesajların şifresini çözebilecek en iyi cihazda saklanır. Yedeklemeler çevrimiçi yapılabilir, ancak bu bir güvenlik riski oluşturur. Ayrıca, genel anahtarın, özel anahtarla aynı yerde saklanmasında herhangi bir risk yoktur. – joakimb