对称 , 没有随机码(或者是使用系统内部的随机码),加密内容一对一,不会随时改变;
加密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数据加密之Rsa加密 •Android数据加密之Aes加密 •Android数据加密之Des加密 •Android...
这个项目是用androidstudio工具编写的,里面包含原项目和apk,这个apk实现了des的加密和解密的功能。
本资料包"DES-android.zip"提供了Android应用程序中使用DES加密的源代码示例,这对于我们理解如何在Android环境下实现DES加密与解密非常有帮助。 DES全称为数据加密标准,它基于一个56位的密钥对数据进行64位的块...
本文将深入探讨如何在Android平台上实现DES加密与解密,以及其背后的原理和注意事项。 首先,DES是一种块密码,它将明文分为64位的数据块,然后用56位的密钥进行加密。虽然现在DES的密钥长度相对较短,可能不那么...
本话题将围绕在Android中使用DES加密和解密时遇到的一个常见问题展开:`javax.crypto.IllegalBlockSizeException: last block incomplete in decryption`。 这个异常通常发生在解密过程中,当输入的数据块大小与DES...
本资源"DES加密解密一套JAVA&IOS"提供了一套跨平台的解决方案,允许JAVA和iOS应用之间进行互操作性的加密和解密操作。 在JAVA平台上,DES加密和解密通常通过Java的`javax.crypto`包来实现。这个包提供了`Cipher`类...
标题中的"android的des加密"指的是在Android应用开发中实现DES加密的过程。由于DES是面向块的加密算法,它将明文分为64位的数据块进行操作,但实际有效密钥长度只有56位,因为其中的8位用于奇偶校验。在Android中,...
5. Android DES加密解密: Android使用Java的加密API,因此实现与JAVA类似。不过,Android提供了 CipherSuiteBuilder 类(API 26+)来简化加密配置。首先创建一个SecretKeySpec对象表示密钥,然后使用`Cipher`的`...
Android Des加密解密算法
在Android环境中,实现DES加密通常涉及到以下几个关键部分: 1. **密钥生成**:由于DES要求密钥为8字节,因此可以使用`SecureRandom`类生成随机字节数组,然后转换成字符串形式存储。例如,`generateKey()`方法通过...
C#系统采用DES加密字符串,Android用DES解密就是不成功,从网上搜了许多源码都不能用,深入研究加密流程及算法是没有时间的。 网上搜的源码大都使用系统默认的加密模式,当我们对这些参数不了解时,就会浪费许多时间...
本文将深入探讨Android端与C#端的DES加密解密实现,以及如何确保它们之间的兼容性。 首先,DES是一种块加密算法,使用64位的数据块和56位的密钥进行操作。它的加密过程分为一系列的替换和转换步骤,通过这些步骤将...
在Android平台上,加密技术是确保数据安全的重要手段。AES(Advanced Encryption Standard)、DES(Data Encryption Standard)和MD5(Message-Digest Algorithm 5)都是常见的加密算法,它们各有特点,适用于不同的...
之前上传过:编译Android下3DES加密算法的.SO文件及源码,地址:...压缩文件内包含编译后的lib3DES.so文件,3DES加密算法的JNI C语言源码,Android的makefile文件等。希望能够帮助到有需要的朋友!
在C语言中实现3DES加密算法,可以确保在不同平台上的兼容性和一致性,尤其对于需要跨平台操作的应用场景,如将C语言代码移植到Android平台,通过JNI接口与Java代码交互,能够很好地解决加解密结果不一致的问题。...
在你提供的"DES加密解密源代码"中,我们可以深入探讨以下几个关键知识点: 1. **DES算法原理**:DES使用了Feistel结构,分为初始置换、16轮迭代和逆初始置换三个阶段。每一轮迭代包含分组、扩展、异或、替换四个...
在提供的文件名"DES3Demo"和"DES3DemoJavaAndroid"中,我们可以推测这些可能是示例代码或项目的源码,包含iOS、Android和Java的3Des加密实现。通过查看这些代码,开发者可以深入理解每种平台的具体实现细节,并根据...