Подписываю текстовое сообщение на закрытом RSA ключе, потом перевожу эту подпись в Base64, потом обратно и проверяю её на открытом ключе. Почему что проверка показывает что подпись не действительна. Неужели Base64 как-то "ломает" текст подписи? Что я делаю не так?
Пример кода:
try {
Signature ecp2 = Signature.getInstance("SHA256withRSA");
ecp2.initSign((PrivateKey) readKey(login+"private"));
ecp2.update("123".getBytes());
byte[] tmps = ecp2.sign();
Log.d("TAG123", new String(tmps));
String s_b = Base64.encodeToString(tmps, Base64.DEFAULT);
//signature_open_key = ecp.sign().toString();
//String str = new String(tmps);
Signature ecp3 = Signature.getInstance("SHA256withRSA");
ecp3.initVerify((PublicKey ) readKey(login+"public" ));
String gg = new String(Base64.decode(s_b.getBytes(), Base64.DEFAULT));
Log.d("TAG123", "clear base64"+gg);
ecp3.update("123".getBytes());
byte[] tt = gg.getBytes();
Log.d("TAG123", "clear base64"+tt);
if(ecp3.verify(tt))
{
Log.d("TAG123", "signature test TRUE");
}
else
{
Log.d("TAG123", "signature test FALSE");
}
} catch (Exception e) {
e.printStackTrace();
}
Переводу в Base64 для того чтобы избавить от символов '
иначе в MySQL нельзя записать так как это спец символ.
Уважаемый DNS оказался прав. В итоге правильный вариант для потомков
try {
Signature ecp2 = Signature.getInstance("SHA256withRSA");
ecp2.initSign((PrivateKey) readKey(login+"private"));
ecp2.update("123".getBytes());
byte[] tmps = ecp2.sign();
Log.d("TAG123", new String(tmps));
byte[] s_b = Base64.encode(tmps, Base64.DEFAULT);
String buff = new String(s_b,"UTF-8");
Signature ecp3 = Signature.getInstance("SHA256withRSA");
ecp3.initVerify((PublicKey ) readKey(login+"public"));
byte[] gg = Base64.decode(buff.getBytes("UTF-8"), Base64.DEFAULT);
ecp3.update("123".getBytes());
if(ecp3.verify(gg))
{
Log.d("TAG123", "signature test TRUE");
}
else
{
Log.d("TAG123", "signature test FALSE");
}
} catch (Exception e) {
e.printStackTrace();
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Доброго времени суток Столкнулся с проблемой когда собрал JavaFX артефактВ появившемся окне в поле TextArea не выводится текст вопросов при том...