java.security.InvalidKeyException: Wrong key size 錯誤

3Des實際上只是3個單獨的DES操作,每個操作都需要一個8字節的密鑰。這需要24字節的密鑰..但是一些實現支持16字節密鑰,其中前8個字節在場景後“自動重複”。有的實現可能不支持這一點。你怎麼能通過重複前8個字節來自己做 - 這樣的事情:

public static byte[] encrypt3DESECB(byte[] keyBytes, byte[] dataBytes) {
    try {
        if (keyBytes.length == 16) { // short key ? .. extend to 24 byte key 
            byte[] tmpKey = new byte[24];
            System.arraycopy(keyBytes, 0, tmpKey, 0, 16);
            System.arraycopy(keyBytes, 0, tmpKey, 16, 8);
            keyBytes = tmpKey;
        }

        SecretKeySpec newKey = new SecretKeySpec(keyBytes, "DESede");
        ...
        ...

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章