0 0

java和object-c实现DES相同的加密算法!10

下面是java写的des加密算法 我想用object-c来实现相同的算法 ,最终两种语言获取的加密字符串是一样的, 万分感激!!!
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;

/**
 * DES加密的,文件中共有两个方法,加密、解密
 * @author jiayu.qiu@downjoy.com
 */
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();
    }

}
2012年7月11日 11:33

1个答案 按时间排序 按投票排序

0 0

这是别人加密的算法,就是模仿别人加密都不知道,怎么去模仿写出算法。(上面贴出来的代码是Java自带的加密,别人封装的方法及参数都不太清楚)

2012年7月11日 11:51

相关推荐

    PHP、JAVA、C#、Object-C、Android 通用的DES加密解密

    在这个主题中,我们将探讨PHP、JAVA、C#、Object-C和Android这五种编程语言中如何实现DES加密解密。 1. PHP DES加密解密: 在PHP中,可以使用mcrypt扩展来实现DES加密解密。首先,你需要创建一个密钥和初始化向量...

    三平台通用加密算法(java/.net/Object-C)

    "三平台通用加密算法"指的是可以在Java、.Net和Object-C这三个不同的开发平台上使用的相同加密逻辑。这种跨平台的兼容性使得开发人员可以更容易地在各种环境中实现一致的安全策略。 在Java中,加密通常依赖于Java ...

    java源码包---java 源码 大量 实例

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    JAVA工具类(整合,xml,json,MD5,加密解密)

    - 加密算法的应用:Java的`Cipher`类用于实现加密和解密操作,可以配合不同的密钥和算法使用。 这个工具类库注释清晰,便于理解,可以快速集成到项目中,提高开发效率。标准的代码编写遵循了良好的编程规范,有助...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四”...

    java源码包2

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    java源码包3

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四”...

    java源码包4

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    shouhu 面试 java 比较全的题目.pdf

    - 加密算法包括很多种,例如:DES(Data Encryption Standard)、AES(Advanced Encryption Standard)、RSA(Rivest-Shamir-Adleman)、MD5(Message-Digest Algorithm 5)和SHA(Secure Hash Algorithm)。...

    JAVA面试题附答案,祝你面试顺利

    - **知识点**: 对称加密算法是指加密和解密使用相同密钥的加密算法,常见的对称加密算法包括: - DES (Data Encryption Standard): 数据加密标准。 - AES (Advanced Encryption Standard): 高级加密标准。 - RC4:...

    Java工具类

    - **Cipher类**:用于完成加密和解密操作,支持多种加密算法如AES、DES、RSA等。 - **KeyGenerator类**:生成特定算法的密钥。 - **MessageDigest类**:用于计算消息摘要,如MD5和SHA家族算法。 - **...

    AES加解密算法编译的so文件及demo

    在Android或iOS等移动平台上,由于性能和内存限制,有时会将加密算法编译成**SO(Shared Object)**或**DLL**等动态链接库文件,以便更高效地调用。SO文件是Linux系统下的动态链接库,它们包含了预编译的机器码,...

    xml-security-bin-1_2_1.zip

    加密过程可能包括选择加密算法(如AES或3DES)、分块处理大型文档以及生成解密所需的密钥。解密则需要正确的密钥和相应的解密算法。 在"xml-security-bin-1_2_1"这个版本中,库可能提供了API接口,使得开发者能够...

    snmp4j帮助

    - **加密与认证**:支持SNMPv3的安全模型,包括DES、AES等加密算法和不同级别的认证机制。 3. **使用Snmp4J的基本步骤** - **初始化Session**:创建一个`Snmp`实例,配置目标设备的地址、版本和认证/加密参数。 ...

Global site tag (gtag.js) - Google Analytics