【问题标题】:encrypt PBEWithMD5AndDES in j2me在 j2me 中加密 PBEWithMD5AndDES
【发布时间】:2010-10-30 20:21:17
【问题描述】:

我正在尝试让这段代码在 j2me 上工作 (它正在运行一个java程序) 但在 j2me 中还没有

    public static String generate(String plaintext, String passphase) throws Exception {
        try {
            PBEKeySpec pbeKeySpec = new PBEKeySpec(passphase.toCharArray());
            PBEParameterSpec pbeParamSpec;
            SecretKeyFactory keyFac;
            // Salt
            byte[] salt = {(byte) 0xc8, (byte) 0x73, (byte) 0x61, (byte) 0x1d, (byte) 0x1a, (byte) 0xf2, (byte) 0xa8, (byte) 0x99};
            // Iteration count
            int count = 20;
            // Create PBE parameter set
            pbeParamSpec = new PBEParameterSpec(salt, count);
            keyFac = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
            SecretKey pbeKey = keyFac.generateSecret(pbeKeySpec);
            // Create PBE Cipher
            Cipher pbeCipher = Cipher.getInstance("PBEWithMD5AndDES");
            // Initialize PBE Cipher with key and parameters
            pbeCipher.init(Cipher.ENCRYPT_MODE, pbeKey, pbeParamSpec);
            // Our cleartext
            byte[] cleartext = plaintext.getBytes();
            // Encrypt the cleartext
            byte[] ciphertext = pbeCipher.doFinal(cleartext);
            return ciphertext;
        } catch (Exception ex) {
            throw new Exception(ex.getMessage());
        }
    }

我找到了这个库 http://www.bouncycastle.org/java.html

重要的是我找到了一种可以使用 PBEWithMD5AndDES 加密的 j2me 方法

有人知道解决办法吗?

编辑添加额外信息

当我尝试将上述代码添加到移动项目时 以下类无法识别(不包含在 j2me 中)

    PBEKeySpec
    PBEParameterSpec
    SecretKeyFactory

所以我需要一个允许我使用 PBEWithMD5AndDES 对纯文本进行编码的包 有谁知道这样一个兼容 j2me 的包吗?

感谢到目前为止的回复

【问题讨论】:

    标签: java-me md5 plaintext encryption


    【解决方案1】:

    应用原语时可能会出错,您应该使用Jasypt

    【讨论】:

    • @Berty 它与 j2me 兼容,但它有自己的实现,使用现代原语。 md5 和 des 已经很老了,坏了,不应该被任何人使用。
    • @Rook 感谢您的回复。我知道它们不是很安全,但它们不需要,我只是用它们从一些可读信息开始生成一个半随机密码。我已经创建了一个桌面安装并且它现在正在使用中,所以移动应用程序必须是相同的算法,否则密码将不匹配。建议的包可以吗?
    • @Berty 你只需要一个随机数生成器。使用 md5 和 des 是多余的。
    • 我知道。关键是,如果您有密码,您只能生成密码。这无关紧要,因为我需要让它与桌面应用程序完全相同,它已经被用来生成多个密码。
    • @Berty 好的,所以您应该发布更多信息,如果您尝试将其作为 j2me 运行,您会遇到什么问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多