首页
社区
课程
招聘
[原创]一段代码不能看懂,求大神解释
发表于: 2013-8-27 19:19 6966

[原创]一段代码不能看懂,求大神解释

2013-8-27 19:19
6966
package com.xx.b.a;

import java.net.URLEncoder;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

public final class a
{
  private static final char[] a = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70 };

  public static String a(String paramString1, String paramString2)
  {
    try
    {
      MessageDigest localMessageDigest = MessageDigest.getInstance("MD5");
      localMessageDigest.update(paramString1.getBytes());
      byte[] arrayOfByte = localMessageDigest.digest();
      StringBuilder localStringBuilder = new StringBuilder(arrayOfByte.length << 1);
      for (int i = 0; ; i++)
      {
        if (i >= arrayOfByte.length)
        {
          String str = localStringBuilder.toString();
          paramString1 = str;
          SecretKeySpec localSecretKeySpec = new SecretKeySpec(paramString1.substring(paramString1.length() / 2).getBytes(), "AES");
          Cipher localCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
          localCipher.init(1, localSecretKeySpec, new IvParameterSpec("2012061372065459".getBytes()));
          return URLEncoder.encode(new String(b.a(localCipher.doFinal(paramString2.getBytes()))), "utf-8");
        }
        localStringBuilder.append(a[((0xF0 & arrayOfByte[i]) >>> 4)]);
        localStringBuilder.append(a[(0xF & arrayOfByte[i])]);
      }
    }
    catch (NoSuchAlgorithmException localNoSuchAlgorithmException)
    {
      while (true)
        localNoSuchAlgorithmException.printStackTrace();
    }
  }
}

传进的参数1:2012241372065459
参数2:xxx1=64555550&xx2=1377601186783&xx3=128&xx4=&xx5=0

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 147
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
目测就是对字符串按照密码加密
2013-9-7 16:48
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
单纯的客户端加密,服务端解密。
为的就防止篡改 提交给服务器的参数
2013-9-7 22:56
0
雪    币: 53
活跃值: (280)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
狠直接、很简单的一个AES加密
连随机salt都不加,所以一个输入,加密必然得到一个输出

对param1计算MD5摘要,hex格式,然后将hex格式摘要后半部分作为AES密钥,使用AES算法加密param2,初始化向量IV固定为:2012061372065459,加密结果经过b.a转换再转成UTF-8字节
2013-9-9 17:26
0
雪    币: 172
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢大神解答
2014-5-22 17:21
0
游客
登录 | 注册 方可回帖
返回
//