0

16 進形式で 56 バイトの未加工バイナリの出力を取得する必要があります。以下のコーディングは私が試したものですが、間違った出力が得られます。

これは私が期待している出力です:

2a4b9ba0a3531ede93203691a2b96fb45a

しかし、私は別の出力を得ています:

A5523F8C1589AB5106A5CC986C859CBB

     private byte[] encryptByTea(String info){

     byte[] temp = info.getBytes();
     int n = 8 - temp.length % 8;//Multiple if temp number less than 8, need to fill     in the numbers
     byte[] encryptStr = new byte[temp.length + n];
     encryptStr[0] = (byte)n;
     System.arraycopy(temp, 0, encryptStr, n, temp.length);
     byte[] result = new byte[encryptStr.length];
     for(int offset = 0; offset <result.length; offset += 8){
     byte[] tempEncrpt = tea.encrypt(encryptStr, offset, KEY, 32);
     System.arraycopy(tempEncrpt, 0, result, offset, 8);
     }
     return result;
     }

     //Through the TEA algorithm decryption information
     private String decryptByTea(byte[] secretInfo){
     byte[] decryptStr = null;
     byte[] tempDecrypt = new byte[secretInfo.length];
     for(int offset = 0; offset <secretInfo.length; offset += 8){
     decryptStr = tea.decrypt(secretInfo, offset, KEY, 32);
     System.arraycopy(decryptStr, 0, tempDecrypt, offset, 8);
     }

     int n = tempDecrypt[0];
     return new String(tempDecrypt, n, decryptStr.length - n);
     }
4

0 に答える 0