在学习过程中,感谢fangzhiguo的[使用易语言java支持库来开发易语言版本javaJDK],
我最近写了一个使用DES加密算法的手机程序. 论坛中只能使用testtset加密和解密算法. 有一些支持库不支持此标准DES加密和解密.
尽管最终使用Delphi的算法解决了该问题,但也值得用Java记录学习路径.
使用[Java类的类型签名]“ -classpath C: \ des.jar kjkj.DES”检查代码中的签名.
第1步生成JAR
1.DES.java: 以下是代码的一部分
软件包kjkj;
......
公共类DES {
......
公共静态字符串编码(字符串键,字符串数据)引发异常{
返回编码(键,data.getBytes());
}
公共静态String编码(字符串键,字节[]数据)引发异常{
尝试{
DESKeySpec dks =新的DESKeySpec(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(“ DES”);
密钥secretKey = keyFactory.generateSecret(dks);
密码密码= Cipher.getInstance(“ DES / ECB / NoPadding”);
cipher.init(Cipher.ENCRYPT_MODE,secretKey);
byte []个字节= cipher.doFinal(数据);
// JOptionPane.showMessageDialog(空,bytesToHexString(字节),“窗口标题”,1);
返回bytesToHexString(字节);
}捕获(异常e){
引发新的异常(e);
}
}
}
2. 生成jar包
导出--jar
第二步E通话
自定义类型:
.version 2
. 数据类型为Object_Java,公共
. 成员对象ID,整数
. 数据类型String_Javajava支持库,公共
. 成员StringObject,Object_Java
. 成员文本类型,文本类型
. 成员额外1,整数
代码:
.version 2
. 支持库Javalib
. 支持库规范
.subroutine调用java类,公共
.parameter参数1,文本类型
.parameter参数2,文本类型
. 局部变量虚拟机,Java虚拟机
.Local变量Java接口,Java本地接口
. 局部变量类ID,整数
. 局部变量方法标识符java支持库,整数
. 局部变量返回结果,String_Java
. 逻辑上的局部变量创建
. 局部变量结果,逻辑类型
create = virtual machine.create(“ C: \; C: \ des.jar”,“ C: \;”)
调试输出(创建)
信息框(已创建,0,)
类ID = Java接口. 加载类别(“ kjkj.DES”)
调试输出(类标识符)
信息框(类ID,0,)
方法标识符= Java接口. 采取静态方法标识符(类标识符,“编码”,“((Ljava / lang /字符串; Ljava / lang /字符串;)Ljava / lang /字符串;”)
调试输出(方法标识符)
信息框(方法标识符0,)
result = Java接口. 静态对象方法(类标识符,方法标识符,返回结果. StringObject.object标识符,java接口. 创建字符串(参数1),java接口. 创建字符串(参数2))<
调试输出(结果)
信息框(结果,0,)
返回结果. 文本类型= Java接口. 接受字符串文本(返回结果. StringObject.object ID,)
调试输出(返回结果. 文本)
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-/a/shouji/article-155443-1.html
如果觉得《java加解密支持库_使用Java支持库调用Java类以实现标准的DES加密和解密》对你有帮助,请点赞、收藏,并留下你的观点哦!