首页/综合福利/ 易语言利用Java支持库调用Java类实现标准DES加解密

易语言利用Java支持库调用Java类实现标准DES加解密

作者:神奇   分类:综合福利   时间:2016-06-07 13:25:22  标签:


在学习过程中参考了fangzhiguo的[利用易语言java支持库开发易语言版javaJDK],特此感谢。
近来在写一个手机程序,用到了DES加密算法,论坛只有testtset的加密解密算法可以使用,还有几个支持库不支持这种标准DES加解密。
虽然最后是使用Delphi的算法解决了问题,但是利用Java的学习途径也值得记录一下。
代码中的签名使用[Java类的类型签名(Type Signature)查询] " -classpath C:\des.jar kjkj.DES" 查看的。
第一步 生成JAR
1、DES.java:以下为部分代码
package kjkj;
......
public class DES {
......
public static String encode(String key, String data) throws Exception {
    return encode(key, data.getBytes());
}
public static String encode(String key, byte[] data) throws Exception {
try {
            DESKeySpec dks = new DESKeySpec(key.getBytes());
            SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
            Key secretKey = keyFactory.generateSecret(dks);
            Cipher cipher = Cipher.getInstance("DES/ECB/NoPadding");        
            cipher.init(Cipher.ENCRYPT_MODE, secretKey);        
            byte[] bytes = cipher.doFinal(data);            
            //JOptionPane.showMessageDialog(null, bytesToHexString(bytes),"窗口标题",1);
            return bytesToHexString(bytes);
        } catch (Exception e) {
            throw new Exception(e);
        }
    }
}
2、生成jar包
    导出--jar
第二步 E调用
自定义类型:
    .版本 2


    .数据类型 Object_Java, 公开
        .成员 object标识, 整数型


    .数据类型 String_Java, 公开
        .成员 StringObject, Object_Java
        .成员 文本型, 文本型
        .成员 附加1, 整数型
代码:
    .版本 2
    .支持库 Javalib
    .支持库 spec


    .子程序 调用java类, , 公开
    .参数 参数1, 文本型
    .参数 参数2, 文本型
    .局部变量 虚拟机, Java虚拟机
    .局部变量 java接口, Java本地接口
    .局部变量 类标识, 整数型
    .局部变量 方法标志符, 整数型
    .局部变量 返回结果, String_Java
    .局部变量 创建, 逻辑型
    .局部变量 结果, 逻辑型


    创建 = 虚拟机.创建 (“C:\;C:\des.jar”, “C:\;”)
    调试输出 (创建)
    信息框 (创建, 0, )
    类标识 = java接口.加载类 (“kjkj.DES”)
    调试输出 (类标识)
    信息框 (类标识, 0, )
    方法标志符 = java接口.取静态方法标志符 (类标识, “encode”, “(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;”)
    调试输出 (方法标志符)
    信息框 (方法标志符, 0, )
    结果 = java接口.静态对象方法 (类标识, 方法标志符, 返回结果.StringObject.object标识, java接口.创建字符串 (参数1), java接口.创建字符串 (参数2))
    调试输出 (结果)
    信息框 (结果, 0, )
    返回结果.文本型 = java接口.取字符串文本 (返回结果.StringObject.object标识, )

    调试输出 (返回结果.文本型)


易语言官方转过来的

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!

评论:

发表评论:

code