回答編集履歴

1 補足

umyu

umyu score 5685

2018/04/16 20:36  投稿

`System.out.println`で変数を出力すると分かりますが暗号化するときは変数:`num0`が1~6なのに、
復号する時は変数:`counter0`が7~1まで回ります。
修正するだけでしたら、以下のような形に変更してくださいな。
修正するだけでしたら、復号部分を以下コードに変更してくださいな。
```Java
for(counter0=textbytelen-1;counter0>=1 ;counter0--)
for(counter0=textbytelen-2;counter0>=1 ;counter0--)
{
   textbytes[counter0]=(byte)(textbytes[counter0] ^(textbytes[counter0-1]));
}
```
こちらの質問[Androidでの暗号化と復号ができません](https://teratail.com/questions/122006)と[Android Keystoreを使って秘匿情報を保持する](https://qiita.com/f_nishio/items/485490dea126dbbb5001)を参考にライブラリを使用することをお勧めします。あと変数はできるだけ直前で宣言してくださいな。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る