文档章节

编码和加密

汪纬
 汪纬
发布于 2016/01/04 14:20
字数 197
阅读 52
收藏 5

package light.mvc.functional.sendsms;


import java.security.Key;  
import java.security.SecureRandom;  
  
import javax.crypto.Cipher;  
import javax.crypto.KeyGenerator;  
import javax.crypto.SecretKey;

import org.apache.commons.codec.binary.Base64;  
  
public class SecurityUtil {  
    public static String DES = "AES"; // optional value AES/DES/DESede  
      
    public static String CIPHER_ALGORITHM = "AES"; // optional value AES/DES/DESede  
      
  
    public static Key getSecretKey(String key) throws Exception{  
        SecretKey securekey = null;  
        if(key == null){  
            key = "";  
        }  
        KeyGenerator keyGenerator = KeyGenerator.getInstance(DES);  
        keyGenerator.init(new SecureRandom(key.getBytes()));  
        securekey = keyGenerator.generateKey();  
        return securekey;  
    }  
      
    public static String encrypt(String data,String key) throws Exception {  
        SecureRandom sr = new SecureRandom();  
        Key securekey = getSecretKey(key);  
        Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);  
        cipher.init(Cipher.ENCRYPT_MODE, securekey, sr);  
        byte[] bt = cipher.doFinal(data.getBytes()); 
        Base64 base64 = new Base64();
        String strs =  new String(base64.encode(bt));  
        return strs;  
    }  
      
      
    public static String detrypt(String message,String key) throws Exception{  
        SecureRandom sr = new SecureRandom();  
        Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);  
        Key securekey = getSecretKey(key);  
        cipher.init(Cipher.DECRYPT_MODE, securekey,sr); 
        Base64 base64 = new Base64();
        byte[] res = base64.decode(message);  
        res = cipher.doFinal(res);  
        return new String(res);  
    }  
      
    public static void main(String[] args)throws Exception{  
        String message = "企业信息导入";  
        String key = "1234567890abcdef";  
        String entryptedMsg = encrypt(message,key);  
        System.out.println("encrypted message is below :");  
        System.out.println(entryptedMsg);  
          
        String decryptedMsg = detrypt(entryptedMsg,key);  
        System.out.println("decrypted message is below :");  
        System.out.println(decryptedMsg);  
    }  
}


© 著作权归作者所有

汪纬

汪纬

粉丝 11
博文 649
码字总数 39577
作品 0
崇明
后端工程师
私信 提问
加载中

评论(2)

汪纬
汪纬

引用来自“hotsmile”的评论

什么意思,没看明白,想说明啥?
日常记录,没什么特别的呵呵
hotsmile
hotsmile
什么意思,没看明白,想说明啥?
Android 数据加密和编码总结

最近正好在项目中用到数据加密,于是从网上查阅一些资料,了解各种加密方式并写代码验证,就在本篇文章中做个总结吧。 我将从这几个方面介绍 Android 中的加密方式以及相关的概念: 1. 异或加...

落英坠露
2017/11/15
0
0
C#的DES加密转换成php?

我有C#的des加密代码 如何按照C#的编码格式转换成php C#代码如下: 示例代码(C#版本解密): #region DESDeCode DES加密 ///解密 privatestring DESDeCode(string decryptoContext, string...

demon-lee
2016/03/14
166
0
Java 实现的 URL 编码和解码技术

当编写 “ 网络爬虫” 或下载器时,在 Java 中实现 URL 编码和解码是一个很常见的要求。本文的重点是创建用于对所传递的 URL 进行编码和解码的模块。你可以看一下 GitHub 上的 源码。 Main 方...

oschina
2017/03/28
4.1K
9
前端加密JS库--CryptoJS 使用指南

Base64 编码为什么要编码?由于一些网络通讯协议的限制, 又或者是出于信息加密的目的, 我们就需要将原信息转换为base64编码,然后才能进行传输.例如,发送某些含有 ASCII 码表中0到31之间的控...

舒龙虎
2018/09/21
0
0
加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较

转载自:http://www.cnblogs.com/sochishun/p/7028056.html 加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较和项目应用 加密技术通常分为两大类:"对称式"和"非对称式"。 对称性加密算法:对称式加......

悬河
2018/06/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EasyExcel

<!-- alibaba EasyExcel escel导入导出 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>1.0.0-RELEASE</version> </dependency>......

少年已不再年少
24分钟前
1
0
解决:warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

代码 static int CheckOneReg(uint8_t busNo, char *title, int32_t addr, uint32_t *val, BOOL isPrintfNL, ErrMsg_t const *pMsg)res |= CheckOneReg(busNo,"fwVer:", HALREG_FW_VER, ......

SamXIAO
24分钟前
1
0
jenkins搭建全流程

安装环境   操作系统:linux   软件:jdk 8   软件:tomcat(apache-tomcat-7.0.90) 软件:jenkins 软件:maven 软件:git 1.1安装步骤 1.1.1安装jdk 由于Jenkins是基于Java开发的,安...

shzwork
30分钟前
1
0
Java的战争

本文来自微信公众号: 金捷幡(ID:jin-jiefan) ,作者:金捷幡,封面:拉里·埃里森(东方IC) 2019年5月,彻底撕破脸的特朗普掀起对华为的战争,谷歌被迫吊销了华为的Android授权。开源软...

Java领航员
今天
8
0
超详细的LM3414MRX/NOPB规格参数介绍就在这里

超详细的LM3414MRX/NOPB规格参数介绍就在这里 描述 LM3414和LM3414MRX/NOPB是具有1-A 60 W(1)共阳极功能的恒流降压LED驱动器。它们适用于驱动单串3-W HBLED,效率高达96%。它们可接受4.5...

不能吃肉的仙女
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部