开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 5056|回复: 17
收起左侧

[交流] 求助,des base64 加密

[复制链接]
结帖率:88% (7/8)
发表于 2016-11-20 13:01:07 | 显示全部楼层 |阅读模式   江西省南昌市
加密内容:
localHashMap.put("password", Base64.encode(Des3.encryptMode(password.getBytes())));
_________________________________________________________________________________________________________________
Des3加密内容:
public class Des3
{
  private static byte[] a()
  {
    return "chinamobile_emiswereport".getBytes();
  }

public static byte[] encryptMode(byte[] paramArrayOfByte)
  {
      SecretKeySpec localSecretKeySpec = new SecretKeySpec(a(), "DESede");
      Cipher localCipher = Cipher.getInstance("DESede");
      localCipher.init(1, localSecretKeySpec);
      paramArrayOfByte = localCipher.doFinal(paramArrayOfByte);
      return paramArrayOfByte;
    }

_________________________________________________________________________________________________________________
Base64加密内容
package com.cmcc.jx.ict.contact.util;

public class Base64
{
  private static char[] a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".toCharArray();
  private static byte[] b = new byte[256];

  static
  {
    int i = 0;
    if (i >= 256)
    {
      i = 65;
      label28:
      if (i <= 90) {
        break label82;
      }
      i = 97;
      label37:
      if (i <= 122) {
        break label99;
      }
      i = 48;
    }
    for (;;)
    {
      if (i > 57)
      {
        b[43] = 62;
        b[47] = 63;
        return;
        b[i] = -1;
        i += 1;
        break;
        label82:
        b[i] = ((byte)(i - 65));
        i += 1;
        break label28;
        label99:
        b[i] = ((byte)(i + 26 - 97));
        i += 1;
        break label37;
      }
      b[i] = ((byte)(i + 52 - 48));
      i += 1;
    }
  }

  public static String encode(byte[] paramArrayOfByte)
  {
    char[] arrayOfChar1 = new char[(paramArrayOfByte.length + 2) / 3 * 4];
    int i = 0;
    int j = 0;
    if (j >= paramArrayOfByte.length) {
      return new String(arrayOfChar1);
    }
    int m = (paramArrayOfByte[j] & 0xFF) << 8;
    if (j + 1 < paramArrayOfByte.length) {
      m |= paramArrayOfByte[(j + 1)] & 0xFF;
    }
    for (int k = 1;; k = 0)
    {
      m <<= 8;
      if (j + 2 < paramArrayOfByte.length) {
        m |= paramArrayOfByte[(j + 2)] & 0xFF;
      }
      for (int n = 1;; n = 0)
      {
        char[] arrayOfChar2 = a;
        if (n != 0)
        {
          n = m & 0x3F;
          label117:
          arrayOfChar1[(i + 3)] = arrayOfChar2[n];
          m >>= 6;
          arrayOfChar2 = a;
          if (k == 0) {
            break label215;
          }
        }
        label215:
        for (k = m & 0x3F;; k = 64)
        {
          arrayOfChar1[(i + 2)] = arrayOfChar2[k];
          k = m >> 6;
          arrayOfChar1[(i + 1)] = a[(k & 0x3F)];
          arrayOfChar1[(i + 0)] = a[(k >> 6 & 0x3F)];
          j += 3;
          i += 4;
          break;
          n = 64;
          break label117;
        }
      }
    }
  }


_________________________________________________________________________________________________________________
使用易语言Des3加密一直得不到结果
.版本 2
.支持库 spec
.支持库 Javalib

调试输出 (java虚拟机.创建 (“L:\2.jar”, ))  ' jni库加载
java类 = java接口.加载类 (“com.cmcc.jx.ict.contact.util.Des3”)  ' env->Findclass函数
调试输出 (到文本 (java类))
加密方法标识符 = java接口.取静态方法标志符 (java类, “encryptMode”, “([B)[B”)  ' env->GetMetheodID函数
调试输出 (到文本 (加密方法标识符))
逻辑 = java接口.静态方法 (java类, 加密方法标识符, 结果, “3135353739343339383534”)
调试输出 (到文本 (逻辑))
加密结果 = java接口.取字符串文本 (结果, )
调试输出 (加密结果)

_____________________________________________________________________________________________________
调试结果为:
* 真
* “127506800”
* “168542336”
* “假”
* “”
_________________________________________________________________________________________________________________
加密前的文本:15579439854
加密后的文本:MHbw2VF2a4ldo%2BWVeH1afA%3D%3D
_________________________________________________________________________________________________________________

要崩溃啦!!!求大神!!!!!
求助如何使用易语言引用jar包加密,其他方法也可以


结帖率:100% (26/26)
发表于 2016-11-21 01:17:03 | 显示全部楼层   浙江省杭州市
1417692308 发表于 2016-11-20 19:25
但是还没有搞懂原理是什么,希望有大神解释下

就是加密算法的原理   你可以去看看这圈子常见的ECB CBC CFB等mode和NoPadding PKCS5Padding PKCS7Padding等padding的区别..........
JS文件https://github.com/sytelus/CryptoJS
回复 支持 反对

使用道具 举报

结帖率:88% (7/8)

签到天数: 5 天

 楼主| 发表于 2016-11-20 19:25:44 | 显示全部楼层   江西省南昌市
但是还没有搞懂原理是什么,希望有大神解释下
回复 支持 反对

使用道具 举报

结帖率:88% (7/8)

签到天数: 5 天

 楼主| 发表于 2016-11-20 19:19:32 | 显示全部楼层   江西省南昌市
问题终于解决了,百度到这个http://tool.chacuo.net/crypt3des网站,然后依照3DES  ECB  Pkcs7这个对于小白来说什么看不懂的术语的提示,竟然神不知鬼不觉的得出了结果,感谢CRstudio ,junkboy 两位大神的提点
回复 支持 反对

使用道具 举报

结帖率:88% (7/8)

签到天数: 5 天

 楼主| 发表于 2016-11-20 18:09:57 | 显示全部楼层   江西省南昌市
CRstudio 发表于 2016-11-20 18:05
JS文件都发给你了

调试出来的结果跟给出的结果不一样,你截图的结果也不一样,有没有发现
回复 支持 反对

使用道具 举报

结帖率:75% (6/8)
发表于 2016-11-20 18:05:27 | 显示全部楼层   山西省运城市
1417692308 发表于 2016-11-20 17:54
扔出一堆术语看不懂呀呀呀呀
能给一下js文件研究一下吗
先跪谢了

JS文件都发给你了
回复 支持 反对

使用道具 举报

结帖率:88% (7/8)

签到天数: 5 天

 楼主| 发表于 2016-11-20 17:54:35 | 显示全部楼层   江西省南昌市

扔出一堆术语看不懂呀呀呀呀
能给一下js文件研究一下吗
先跪谢了
回复 支持 反对

使用道具 举报

结帖率:88% (7/8)

签到天数: 5 天

 楼主| 发表于 2016-11-20 17:50:11 | 显示全部楼层   江西省南昌市

调试了好久还是没有得到最终答案,
为什么junkboy能调试出来呀
回复 支持 反对

使用道具 举报

结帖率:100% (26/26)
发表于 2016-11-20 16:37:59 | 显示全部楼层   浙江省杭州市
1417692308 发表于 2016-11-20 16:25
能截个图吗?大榭!!!

3DES  ECB  Pkcs7
回复 支持 反对

使用道具 举报

结帖率:88% (7/8)

签到天数: 5 天

 楼主| 发表于 2016-11-20 16:25:36 | 显示全部楼层   江西省南昌市
junkboy 发表于 2016-11-20 15:13
JS源码那么多 为啥非要调用jar........虽然我也不会调用jar

大神!!你是怎么做到的??能截个图吗?大榭!!!
回复 支持 反对

使用道具 举报

结帖率:75% (6/8)
发表于 2016-11-20 16:22:11 | 显示全部楼层   山西省运城市
自己下载

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表