浅析加解密的例子

1 篇文章 0 订阅
1 篇文章 0 订阅

总是想整理些东西出来,但是平时工作太忙,好不容易今晚抽出点时间把之前写的
一些小方法总结下,作为一个引子,希望以后有时间和精力写出真正的干货出来。
见笑了。

package com.rrtx.card.xpay.action;

import java.io.UnsupportedEncodingException;

import cn.jpush.api.utils.Base64;

import com.rrtx.card.encrypt.ProcessMessage;
import com.rrtx.card.util.CommonUntil;
import com.rrtx.card.xpay.util.DesUtils;

public class myWayTest {
    /**
     * 解密
     * @param encStr
     * @throws Exception
     */
    public static void des (String encStr) throws Exception{
         DesUtils des = DesUtils.getInstance();
         String key = "ad?<>[]=+-12.,';";
         byte[] k = key.getBytes();
         char[] encByte = encStr.toCharArray();
         byte[] dec = des.decrypt(Base64.decode(encByte), k, null);
         String decStr = new String(dec);
         System.out.println("解密后的数据"+decStr);
    }
    /**
     * 加密
     * @param password
     * @return
     * @throws Exception
     */
     public static String jiami(String password) throws Exception {

         DesUtils des = DesUtils.getInstance();
        // 此处为密匙
        String key = "ad?<>[]=+-12.,';";
//       String key = "wangpeng";
        // 将密码和密匙转换为byte数组
        byte[] pwd = password.getBytes();
        byte[] k = key.getBytes();
        // 加密
        byte[] enc = des.encrypt(pwd, k, null);
        System.out.println("加密后的byte数据: "+enc);
        String encStr = new String(Base64.encode(enc));
        System.out.println("加密后的字符串数据: "+ encStr);
        return encStr;
     }
     /**
      * 加密加解密
      * @throws Exception
      */
     public static void ss () throws Exception {
         DesUtils des = DesUtils.getInstance();
         String password = "123456";
        // 此处为密匙
        String key = "ad?<>[]=+-12.,';";
//       String key = "wangpeng";
        // 将密码和密匙转换为byte数组
        byte[] pwd = password.getBytes();
        byte[] k = key.getBytes();
        // 加密
        byte[] enc = des.encrypt(pwd, k, null);
        System.out.println("加密后的byte数据: "+enc);
        String encStr = new String(Base64.encode(enc));
        System.out.println("加密后的字符串数据: "+ encStr);

        /***************解密**********************/
        //encStr = tes.decode(encStr);
        char[] encByte = encStr.toCharArray();
        byte[] dec = des.decrypt(Base64.decode(encByte), k, null);
        String decStr = new String(dec);
        System.out.println("解密后的数据"+decStr);
     }
/**
 * 对汉字或字符串进行编码再解码
 * @param name
 */
 public static void encodeAndDecode (String name) {
     if (CommonUntil.isEmpty(name)) {
         name = "测试王";
     }
     try {
             // 编码
            String encodeName = java.net.URLEncoder.encode(name, "UTF-8");
            System.out.println(encodeName);
            // 解码
            String decodeName = java.net.URLDecoder.decode(encodeName, "UTF-8");
            System.out.println(decodeName);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
     }

    public static void signAndCheckSign (String transdata ) {
        byte[] signData1 = new byte[2048];
        if (CommonUntil.isEmpty(transdata)) {
            transdata = "123456";
        }
        signData1 = ProcessMessage.signMessage(transdata, "D:/ruirong/apache-tomcat-6.0.37/webapps/xpay/cert/private.pfx",
                "rrtx1234");
        String signData = new String(signData1);
        System.out.println("签名后的字符串 signData :" + signData);
        System.out.println("签名成功");
        String k = "MIIDmjCCAoKgAwIBAgIJALbVA79lN8LfMA0GCSqGSIb3DQEBCwUAMGIxCzAJBgNV"+
"BAYTAkNOMQ8wDQYDVQQIDAZzaGFueGkxDzANBgNVBAcMBnNoYW54aTEPMA0GA1UE"+
"CgwGd3V6aG91MQ8wDQYDVQQLDAZ3dXpob3UxDzANBgNVBAMMBnd1emhvdTAeFw0x"+
"NzA5MDYwODA2MjVaFw0xODA5MDYwODA2MjVaMGIxCzAJBgNVBAYTAkNOMQ8wDQYD"+
"VQQIDAZzaGFueGkxDzANBgNVBAcMBnNoYW54aTEPMA0GA1UECgwGd3V6aG91MQ8w"+
"DQYDVQQLDAZ3dXpob3UxDzANBgNVBAMMBnd1emhvdTCCASIwDQYJKoZIhvcNAQEB"+
"BQADggEPADCCAQoCggEBAMYkp8/nxLjXhSIzss/ba1hpxN4spdRWrEYxqniIr379"+
"0zZd0YjlPiXgag4FzhZSNOxTeq35msNyeeLUsKt6Ym01MTqaDnsUKNGF0qnIPIHy"+
"AyWoMXwBy6Cwr/+NlClkkZocV3aKrFvj0EXC9HmFfExfgdWTebyQJfCMBghGGplq"+
"Dz6P5rA1cSXUR1H9ZQuePzF+SSMErOpXsIk/De7qG6stzZgQslA9RYIkwjGpy6vU"+
"OvZNXqGM1cTyQwA7jK8gVY1G6uP3YcZfeQylFabiijCmerj/e6qQeeK9sP5c5Ug7"+
"KHePf8LA8yial+ycTY60TIpVdjs9xki3X0b9VpYEJXUCAwEAAaNTMFEwHQYDVR0O"+
"BBYEFNzkD9rY3iO8IfTw/9GFs6o/Q5eZMB8GA1UdIwQYMBaAFNzkD9rY3iO8IfTw"+
"/9GFs6o/Q5eZMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAMP3"+
"0YARHg2rulB8uKLHsLrF4CCBxBpZklSgB3Ea13ARcoJhTgdF0+/ieK3pU1sG9PhV"+
"Z5jWB8y8XZnbI5PPPlGZx3THBim/i7J0RsSPaYYz3+QUFR0V9k5UhDlV3vji4PzZ"+
"CD0vRDTAppxJmNdxbn6EpLg2fZ7ZfiKoRhLyNnu5bQKt/TWaKnxVUZ48jvs9mbOH"+
"pT1WNtIuONpaGEnsCuGtJiEX3K3qIBMQrULKc+Ooj71WtpmigcoT1NPeP1EHDukY"+
"IhLMTo4kYLtZMbG9CE0XMgtH2+26rTGo6E7vt3DUAB48sZ8bvQ45ICeOuMt1HT1v"+
"iw0JZappRwd+41LwyIY=";
        Boolean flag = ProcessMessage.verifyMessage(transdata, signData, k.getBytes());
        if(flag){
            // 说明验签成功,将数据返回到PrepaidCardAction
//          return null;
            System.out.println("验签成功");
        } else{
            // 验签失败
            System.out.println("验签失败");
        }
    }
    public static void main (String[] args) throws Exception {
        signAndCheckSign("456789");
        // 加密
        String encStr = jiami("123456");
        // 解密
        des(encStr);
        // 加密+解密
//      ss();
         // 解密
//      des("M6HWbg4kLZw="); 
        // 编码加解码
        encodeAndDecode("王朋朋");
    } 
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值