ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:21.77KB ,
资源ID:5962368      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5962368.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java编程和android移动开发通用的常见加密算法.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java编程和android移动开发通用的常见加密算法.docx

1、Java编程和android移动开发通用的常见加密算法Java编程android移动开发通用常见加密算法和摘要算法By 174997990 第一部分: 测试代码,复制到项目即可.注意类名import java.io.IOException;import java.security.PrivateKey;import java.security.PublicKey;public class Main /* * param args * throws Exception * throws IOException */ public static void main(String args) thr

2、ows Exception String oldString, encodeString, decodeString, keyString; byte encodeBytes, decodeBytes; oldString = 汉a字a喊喊!#$%&*()-=+_?:;| 喊汉a字a喊喊 喊汉a字a喊喊 喊 汉a字a喊喊!#$%&*()-=+_?:;| 喊汉a字a喊喊 喊汉a字a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;| 喊汉a字a喊喊 喊汉a字a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;| 喊汉a字a喊喊 喊汉a字a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;| 喊汉

3、a字a喊喊 喊汉a字a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;| 喊汉aQQ:174997990字a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;| 喊汉a字a喊喊 喊汉a字a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;| 喊汉a字a喊喊 喊汉a字a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;| 喊汉a字a喊喊 喊汉a字a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;| 喊汉a字a喊喊 喊汉a字a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;| 喊汉a字syd168a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;| 喊汉a字a喊喊 喊汉a字a喊喊 喊汉a字

4、a喊喊!#$%&*()-=+_?:;| 喊汉a字a喊喊 喊汉a字a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;| 喊汉a字a喊喊 喊汉a字a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;| 喊汉a字a喊喊 喊汉a字a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;| 喊汉a字a喊喊 喊汉a字a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;| 喊汉a字a喊喊 喊汉a字a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;| 喊汉a字a喊喊 喊汉a字a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;| 喊汉a字a喊喊 喊汉a字a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;|

5、喊汉a字a喊喊 喊汉a字a喊喊 喊汉a字a喊喊!#$%&*()-=+_?:;| 喊汉a字a喊喊 喊汉a字a喊喊 喊; System.out.println(=designed by 174997990=); /测试Base64编码 System.out.println(=Base64 test=); encodeString = MyEncryption.Base64.encode(oldString.getBytes(); /以系统默认编码方式转换为字节数组 byte bb = MyEncryption.Base64.decode(encodeString); /返回的字符串就是系统默认编码

6、 decodeString = new String(bb); System.out.println(原始字符串 = + oldString); System.out.println(Base64编码= + encodeString); System.out.println(Base64解码= + decodeString); System.out.println(解码后和原串= + (decodeString.equals(oldString) ? 完全一样 : 不同); /测试DES加密 System.out.println(n=DES encrypy test=); keyString

7、= 01234567; encodeString = MyEncryption.MyDES.encryptDES(oldString, keyString); decodeString = MyEncryption.MyDES.decryptDES(encodeString, keyString); decodeString = new String(decodeString.getBytes(); System.out.println(原始字符串 = + oldString); System.out.println(DES加密后 = + encodeString); System.out.p

8、rintln(DES解密后 = + decodeString); System.out.println(解密后和原串= + (decodeString.equals(oldString) ? 完全一样 : 不同); /测试3DES加密 keyString = abcdefghigk; System.out.println(n=3DES encrypy test=); encodeString = MyEncryption.My3DES.encrypt3DES(oldString, keyString); decodeString = MyEncryption.My3DES.decrypt3DE

9、S(encodeString, keyString); decodeString = new String(decodeString.getBytes(); System.out.println(原始字符串 = + oldString); System.out.println(3DES加密后 = + encodeString); System.out.println(3DES解密后 = + decodeString); System.out.println(解密后和原串= + (decodeString.equals(oldString) ? 完全一样 : 不同); /测试AES加密 keyS

10、tring = abcdefsdfsdfghigk; System.out.println(n=AES encrypy test=); encodeString = MyEncryption.MyAES.encryptAES(oldString, keyString); decodeString = MyEncryption.MyAES.decryptAES(encodeString, keyString); decodeString = new String(decodeString.getBytes(); System.out.println(原始字符串 = + oldString); S

11、ystem.out.println(AES加密后 = + encodeString); System.out.println(AES解密后 = + decodeString); System.out.println(解密后和原串= + (decodeString.equals(oldString) ? 完全一样 : 不同); /测试RSA加密 System.out.println(n=RSA encrypy test=); /第一次调用的时候需要执行!会将生成的秘钥保存到文件中,供后期加密解密使用,而且留给自己的私钥一定要从系统中删除! /KeyPair keyPair = MyEncrypt

12、ion.MyRSA.generateKeyPair(MyEncryption.MyRSA.KEY_SIZE); /初始化完后,即可从KeyPair中获取秘钥对,但这只适用于测试 /PublicKey publicKey0 = keyPair.getPublic(); /PrivateKey privateKey0 = keyPair.getPrivate(); /从文件中获取秘钥, PublicKey publicKey = (PublicKey) MyEncryption.MyRSA.getKeyFromFile(MyEncryption.MyRSA.PUBLIC_KEY_FILE); Pr

13、ivateKey privateKey = (PrivateKey) MyEncryption.MyRSA.getKeyFromFile(MyEncryption.MyRSA.PRIVATE_KEY_FILE); encodeBytes = MyEncryption.MyRSA.publicEncrypt(publicKey, oldString); encodeString = new String(MyEncryption.Base64.encode(encodeBytes).getBytes(), utf-8); decodeBytes = MyEncryption.MyRSA.priv

14、ateDecrypt(privateKey, MyEncryption.Base64.decode(encodeString); decodeString = new String(decodeBytes, utf-8); System.out.println(待加密的字符串 = + oldString); System.out.println(RSA公钥加密后 = + encodeString); System.out.println(RSA私钥解密后 = + decodeString); System.out.println(解密后和原串= + (decodeString.equals(o

15、ldString) ? 完全一样 : 不同); /= encodeBytes = MyEncryption.MyRSA.privateEncrypt(privateKey, oldString); encodeString = new String(MyEncryption.Base64.encode(encodeBytes).getBytes(), utf-8); decodeBytes = MyEncryption.MyRSA.publicDecrypt(publicKey, MyEncryption.Base64.decode(encodeString); decodeString =

16、new String(decodeBytes, utf-8); System.out.println(n待加密的字符串 = + oldString); System.out.println(RSA私钥加密后 = + encodeString); System.out.println(RSA公钥解密后 = + decodeString); System.out.println(解密后和原串= + (decodeString.equals(oldString) ? 完全一样 : 不同); /测试MD5摘要算法 System.out.println(n=MD5 MessageDigest test=

17、); encodeString = MyEncryption.MyMD5.getMD5String_new(oldString); System.out.println(原始字符串 = + oldString); System.out.println(MD5摘要为 = + encodeString); System.out.println(摘要长度为= + encodeString.length(); /测试SHA摘要算法 System.out.println(n=SHA MessageDigest test=); encodeString = MyEncryption.MySHA.getSH

18、AString(oldString); System.out.println(原始字符串 = + oldString); System.out.println(SHA摘要为 = + encodeString); System.out.println(摘要长度为= + encodeString.length(); 第二部分:算法部分,复制到项目即可.注意类名!import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.

19、FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.UnsupportedEncodingException;import java.security.Key;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.MessageDigest;import java.securi

20、ty.PrivateKey;import java.security.PublicKey;import java.security.SecureRandom;import java.security.interfaces.RSAPrivateKey;import java.security.interfaces.RSAPublicKey;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;imp

21、ort javax.crypto.spec.DESedeKeySpec;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec;public class MyEncryption /static final String CHAR_SET = utf-8; / 加解密统一使用的编码方式 / =DES= public static class MyDES /* * 加密一串字符 * param planeString 待加密的字符串,加密中被转为UTF-8编码类型 * param keyStr

22、ing 秘钥,最多8字符,即64位秘钥长度,不能为 汉子等多字节字符!这里不足长度的double补空格,多余的删除 * return 返回加密后的字符串,转为Base64编码 * throws Exception */ public static String encryptDES(String planeString, String keyString) throws Exception / 秘钥只能为0-8个字符,即64位长度秘钥 keyString = keyString.length() 8 ? keyString.substring(0, 8) : keyString; while

23、(keyString.length() 8 ? keyString.substring(0, 8) : keyString; while (keyString.length() 8) keyString = keyString + ; byte byteMi = Base64.decode(decryptString); /byte byteMi = new BASE64Decoder().decodeBuffer(decryptString); / byte byteMi = decryptString.getBytes(); /如果原始加密串没有经过base64转换启用这句,注释上句 Iv

24、ParameterSpec zeroIv = new IvParameterSpec(keyString.getBytes(); SecretKeySpec sks = new SecretKeySpec(keyString.getBytes(), DES); Cipher cipher = Cipher.getInstance(DES/CBC/PKCS5Padding); cipher.init(Cipher.DECRYPT_MODE, sks, zeroIv); byte decryptedData = cipher.doFinal(byteMi); return new String(decryptedData); / 这条语句不能写为:return new String(decryptedData,encoding) / =3DES= public static class My3DES /* * 3DES加密 * param planeString 普通文本 * param keyString 秘钥,最多24个字符,即192位秘钥长度,不能为 汉子等多字节字符!这里不足长度的double补空格,多余的删除 * return 返回经过加

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1