1

ここに私のJavaコードがdesを使用しています

public class DES {

    public static String encode(String str, String key) throws Exception {
        byte[] rawKey=Base64.decode(key);
        IvParameterSpec sr=new IvParameterSpec(rawKey);
        DESKeySpec dks=new DESKeySpec(rawKey);
        SecretKeyFactory keyFactory=SecretKeyFactory.getInstance("DES");
        SecretKey secretKey=keyFactory.generateSecret(dks);

        javax.crypto.Cipher cipher=Cipher.getInstance("DES/CBC/PKCS5Padding");
        cipher.init(Cipher.ENCRYPT_MODE, secretKey, sr);

        byte data[]=str.getBytes("UTF8");
        byte encryptedData[]=cipher.doFinal(data);
        return Base64.encode(encryptedData).trim();
    }

    public static String decode(String str, String key) throws Exception {
        byte[] rawKey=Base64.decode(key);
        IvParameterSpec sr=new IvParameterSpec(rawKey);
        DESKeySpec dks=new DESKeySpec(rawKey);
        SecretKeyFactory keyFactory=SecretKeyFactory.getInstance("DES");
        SecretKey secretKey=keyFactory.generateSecret(dks);
        Cipher cipher=Cipher.getInstance("DES/CBC/PKCS5Padding");
        cipher.init(Cipher.DECRYPT_MODE, secretKey, sr);
        byte encryptedData[]=Base64.decode(str);
        byte decryptedData[]=cipher.doFinal(encryptedData);
        return new String(decryptedData, "UTF8").trim();
    }
}

私は Objective-C の初心者で、Ojbective-c DES で問題があります。上記のコードは Java を使用しています。文字列を暗号化または復号化したいのですが、最終的に Object-c で同じ結果が得られます。

4

1 に答える 1

0

CommonCrypto ライブラリ (C 言語であるため、Objective-C から使用でき、Mac OS X と iOS の両方に含まれています) は DES アルゴリズムを実装しています。たとえば、この質問を参照してください: Objective-C の暗号化

于 2012-07-10T10:57:32.137 に答える