`

android des 加密

阅读更多

对称 , 没有随机码(或者是使用系统内部的随机码),加密内容一对一,不会随时改变;

加密key byte lengh = 8 ,不可加长或者变短, 易碰撞破解;

比较简单 ,性能高点;

package widget;

import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;

import android.util.Base64;

public class CipherDes {  
    private static final String Algorithm = "DES";  //定义 加密算法,可用 DES,DESede,Blowfish
 
    // 加密字符串
    public  String encryptMode(byte[] keybyte, String input) {
    	checkKey(keybyte);
    	
        try { // 生成密钥
            SecretKey deskey = new SecretKeySpec(keybyte, Algorithm); // 加密
            Cipher c1 = Cipher.getInstance(Algorithm);
            c1.init(Cipher.ENCRYPT_MODE, deskey);
            byte[] results = c1.doFinal(input.getBytes("utf-8"));
            String encrypted = Base64.encodeToString(results, Base64.DEFAULT);
            return encrypted;
        } catch (java.security.NoSuchAlgorithmException e1) {
            e1.printStackTrace();
        } catch (javax.crypto.NoSuchPaddingException e2) {
            e2.printStackTrace();
        } catch (java.lang.Exception e3) {
            e3.printStackTrace();
        }
        return null;
    }
 
    // 解密字符串
    public  String decryptMode(byte[] keybyte, String encrypted) {
    	checkKey(keybyte);
    	
        try { // 生成密钥
        	byte[] src = Base64.decode(encrypted, Base64.DEFAULT);
            SecretKey deskey = new SecretKeySpec(keybyte, Algorithm); // 解密
            Cipher c1 = Cipher.getInstance(Algorithm);
            c1.init(Cipher.DECRYPT_MODE, deskey);
            return new String(c1.doFinal(src),"utf-8");
        } catch (java.security.NoSuchAlgorithmException e1) {
            e1.printStackTrace();
        } catch (javax.crypto.NoSuchPaddingException e2) {
            e2.printStackTrace();
        } catch (java.lang.Exception e3) {
            e3.printStackTrace();
        }
        return null;
    }
    
    private void checkKey(byte key[]){
    	if(key.length != 8)
    		throw new IllegalArgumentException("key byte lenght should = 8");
    }
}

 

 

分享到:
评论

相关推荐

    Android数据加密之Des加密

    有个同事咨询我有关Android DES加密的相关实现,简单的实现了一下,今天来总结一下。  其他几种加密方式:  •Android数据加密之Rsa加密  •Android数据加密之Aes加密  •Android数据加密之Des加密  •Android...

    android des加密解密 demo

    这个项目是用androidstudio工具编写的,里面包含原项目和apk,这个apk实现了des的加密和解密的功能。

    DES-android.zip_android DES加密_des_des android_encryption androi

    本资料包"DES-android.zip"提供了Android应用程序中使用DES加密的源代码示例,这对于我们理解如何在Android环境下实现DES加密与解密非常有帮助。 DES全称为数据加密标准,它基于一个56位的密钥对数据进行64位的块...

    android DES 加密

    本文将深入探讨如何在Android平台上实现DES加密与解密,以及其背后的原理和注意事项。 首先,DES是一种块密码,它将明文分为64位的数据块,然后用56位的密钥进行加密。虽然现在DES的密钥长度相对较短,可能不那么...

    android DES加密解密 javax.crypto.IllegalBlockSizeException: last block incomplete in

    本话题将围绕在Android中使用DES加密和解密时遇到的一个常见问题展开:`javax.crypto.IllegalBlockSizeException: last block incomplete in decryption`。 这个异常通常发生在解密过程中,当输入的数据块大小与DES...

    DES加密解密一套JAVA&IOS

    本资源"DES加密解密一套JAVA&IOS"提供了一套跨平台的解决方案,允许JAVA和iOS应用之间进行互操作性的加密和解密操作。 在JAVA平台上,DES加密和解密通常通过Java的`javax.crypto`包来实现。这个包提供了`Cipher`类...

    android的des加密

    标题中的"android的des加密"指的是在Android应用开发中实现DES加密的过程。由于DES是面向块的加密算法,它将明文分为64位的数据块进行操作,但实际有效密钥长度只有56位,因为其中的8位用于奇偶校验。在Android中,...

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

    5. Android DES加密解密: Android使用Java的加密API,因此实现与JAVA类似。不过,Android提供了 CipherSuiteBuilder 类(API 26+)来简化加密配置。首先创建一个SecretKeySpec对象表示密钥,然后使用`Cipher`的`...

    Des加密解密算法(C语言互通)

    Android Des加密解密算法

    Android数据加密之Des加密详解

    在Android环境中,实现DES加密通常涉及到以下几个关键部分: 1. **密钥生成**:由于DES要求密钥为8字节,因此可以使用`SecureRandom`类生成随机字节数组,然后转换成字符串形式存储。例如,`generateKey()`方法通过...

    Android与其他系统间DES加密解密的处理经验

    C#系统采用DES加密字符串,Android用DES解密就是不成功,从网上搜了许多源码都不能用,深入研究加密流程及算法是没有时间的。 网上搜的源码大都使用系统默认的加密模式,当我们对这些参数不了解时,就会浪费许多时间...

    android端写的DES加密解密代码对应C#写的加密解密代码。两者加密解密结果完全一致

    本文将深入探讨Android端与C#端的DES加密解密实现,以及如何确保它们之间的兼容性。 首先,DES是一种块加密算法,使用64位的数据块和56位的密钥进行操作。它的加密过程分为一系列的替换和转换步骤,通过这些步骤将...

    android AES DES MD5加密

    在Android平台上,加密技术是确保数据安全的重要手段。AES(Advanced Encryption Standard)、DES(Data Encryption Standard)和MD5(Message-Digest Algorithm 5)都是常见的加密算法,它们各有特点,适用于不同的...

    Android下3DES加密算法的JNI实现(完善版)

    之前上传过:编译Android下3DES加密算法的.SO文件及源码,地址:...压缩文件内包含编译后的lib3DES.so文件,3DES加密算法的JNI C语言源码,Android的makefile文件等。希望能够帮助到有需要的朋友!

    3DES加密算法C语言实现

    在C语言中实现3DES加密算法,可以确保在不同平台上的兼容性和一致性,尤其对于需要跨平台操作的应用场景,如将C语言代码移植到Android平台,通过JNI接口与Java代码交互,能够很好地解决加解密结果不一致的问题。...

    DES加密解密源代码

    在你提供的"DES加密解密源代码"中,我们可以深入探讨以下几个关键知识点: 1. **DES算法原理**:DES使用了Feistel结构,分为初始置换、16轮迭代和逆初始置换三个阶段。每一轮迭代包含分组、扩展、异或、替换四个...

    3Des加密,在ios,android ,java服务端都实现了

    在提供的文件名"DES3Demo"和"DES3DemoJavaAndroid"中,我们可以推测这些可能是示例代码或项目的源码,包含iOS、Android和Java的3Des加密实现。通过查看这些代码,开发者可以深入理解每种平台的具体实现细节,并根据...

Global site tag (gtag.js) - Google Analytics