PowerBuilder--Aes128加解密
通过C#开发Com控件,注册到系统,然后由pb通过OLEObject进行调用
原文:https://www.cnblogs.com/eric_ibm/archive/2012/07/06/dll.html
代码(VS2010)+ 动态库:https://pan.baidu.com/s/17jFggInvIaYD_kEDqHhRpg
PB代码:
//====================================================================
// 事件: u_sysfunc.uf_encrypt_aes128()
//--------------------------------------------------------------------
// 描述: aes128 加密
//--------------------------------------------------------------------
// 参数:
// value string as_key 秘钥
// value string as_data 被加密数据
// reference string as_data_encrypted 密文
//--------------------------------------------------------------------
// 返回: string
//--------------------------------------------------------------------
// 修改历史:
//
//====================================================================
Int li_ret
String ls_msg OLEObject encryption //调用第三方库进行加密
Try
encryption = Create OLEObject
li_ret = encryption.ConnectToNewObject("com.cz.encry.Encryption") If li_ret <> 0 Then
as_data_encrypted = '调用加密COM组件错误'
If Isvalid(encryption) Then
encryption.DisconnectObject()
Destroy encryption
End If
Return -1
End If
as_data_encrypted = encryption.Encrypt(as_data, as_key) Catch (RuntimeError e)
ls_msg = e.getmessage()
as_data_encrypted = '加密出错:' + ls_msg
If Isvalid(encryption) Then
encryption.DisconnectObject()
Destroy encryption
End If
Return -1
End Try If Isvalid(encryption) Then
encryption.DisconnectObject()
Destroy encryption
End If Return 1
//====================================================================
// 事件: u_sysfunc.uf_decrypt_aes128()
//--------------------------------------------------------------------
// 描述: aes128 解密
//--------------------------------------------------------------------
// 参数:
// value string as_key 秘钥
// value string as_data 被解密数据
// reference string as_data_decrypted
//--------------------------------------------------------------------
// 修改历史:
//
//====================================================================
Int li_ret
String ls_msg OLEObject encryption //调用第三方库进行解密 Try
encryption = Create OLEObject
li_ret = encryption.ConnectToNewObject("com.cz.encry.Encryption") If li_ret <> 0 Then
as_data_decrypted = '调用解密COM组件错误'
If Isvalid(encryption) Then
encryption.DisconnectObject()
Destroy encryption
End If
Return -1
End If
as_data_decrypted = encryption.Decrypt(as_data, as_key) Catch (RuntimeError e)
ls_msg = e.getmessage()
as_data_decrypted = '解密出错:' + ls_msg
If Isvalid(encryption) Then
encryption.DisconnectObject()
Destroy encryption
End If
Return -1
End Try If Isvalid(encryption) Then
encryption.DisconnectObject()
Destroy encryption
End If Return 1
PowerBuilder--Aes128加解密的更多相关文章
- c# AES128 加解密算法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- 使用bouncycastle进行DESede/DESeee/AES128/AES192/AES256的加解密
前言 默认的jdk不支持DESeee的算法,本地化的JDK中配置有拦截规则,可以通过使用bouncycastle的jar包中的DESEngine类来进行DESeee算法的运算. DES的8字节加解密 ...
- openssl enc 加解密
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- Java 使用AES/CBC/PKCS7Padding 加解密字符串
介于java 不支持PKCS7Padding,只支持PKCS5Padding 但是PKCS7Padding 和 PKCS5Padding 没有什么区别要实现在java端用PKCS7Padding填充, ...
- Go语言加解密--AES简单实践
AES加解密的简单实现,代码如下. package main import ( "crypto/aes" "crypto/cipher" "encod ...
- iOS URL加解密
URL加解密 背景介绍 iOS 下URL加解密,项目使用AFNetworking 虽然是使用HTTPS,但是从安全方面考虑,在很多情况下还是需要对url的参数进行加密的. 接口如 https://19 ...
- OpenSSL aes加解密实例+base64编解码
OpenSSL aes加解密简单实例+base64编解码 #include <stdio.h> #include <string.h> #include <memory. ...
- 关于java php go 中AES加解密秘钥长度问题
今天心血来朝,想用go把php中的一个小功能重写一下,但在解密aes加密的数据时碰到了个坑! php的mcrypt拓展(貌似php7.1版本以上不支持了)提供了aes的加解密: 而且php aes 的 ...
- 最强加密算法?AES加解密算法Matlab和Verilog实现
目录 背景 AES加密的几种模式 基本运算 AES加密原理 Matlab实现 Verilog实现 Testbench 此本文首发于公众号[两猿社],重点讲述了AES加密算法的加密模式和原理,用MATL ...
- 痞子衡嵌入式:SNVS Master Key仅在i.MXRT10xx Hab关闭时才能用于DCP加解密
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT系列中数据协处理器DCP使用SNVS Master Key加解密的注意事项. i.MXRT不仅仅是处理性能超强的MCU,也是 ...
随机推荐
- Java中使用HttpRequest调用RESTfull的DELETE方法接口提示:How to fix HTTP method DELETE doesn't support output
说明:无论是Spring框架还是Spring Boot的Feign形式的客户端,以下的解决方法都适用. 解决方法:直接升级JDK 1.8,这个问题是1.7的BUG. 参考: https://sales ...
- SQL Server查看Sql语句执行的耗时和IO消耗
原文:SQL Server查看Sql语句执行的耗时和IO消耗 在做系统过程中,经常需要针对某些场景进行性能优化,那么如何判定性能优化的效果呢?肯定需要知道优化之前Sql语句的耗时和优化之后Sql语句的 ...
- iptables 要点总结
http://jiayu0x.com/2014/12/02/iptables-essential-summary/
- java 中的VO,PO,DTO,DO对象
经常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析. 得出的主要结论是:在项目应用中,VO对应于页面上需要显示的数据(表单),DO对应 ...
- PHP登陆提示信息框代码
出错的提示框 echo "<Script Language='Javascript'>"; echo "alert('提示:用户名密码错误,请重新输入!' ...
- JavaScript的filter用法
Js的有些操作会改变原来的对象:有些操作则不会改变原来对象. 数组的filter方法就不会改变原来数组 利用filter,可以巧妙地去除Array的重复元素: 'use strict'; var r, ...
- Linux下查找、删除、替换命令
查看某目录下所有文件的个数: [root@localhost1 opt]# ls -l |grep "^-"|wc -l 查看某目录下所有文件的个数,包括子目录里面的: [root ...
- thrift.transport.TTransport.TTransportException: Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found
thrift.transport.TTransport.TTransportException: Could not start SASL: Error in sasl_client_start (- ...
- Error:[$parse:lexerr]
1.错误描写叙述 2.错误原因 由错误提示可知,有关AngularJS代码不符合语法,导致报错 3.解决的方法 检查发现,title标签中的data-ng-bind属性使用方法有误 <title ...
- 不删除记录的表CRUD的常见处置
为什么不删除记录,因为这些记录只是暂时不用了,以后还是有可能会用到的,比如说统计:另外一些主键外键依赖级联删除的场合也不好真删的,容易批量删除.真删了就不容易恢复回来了. 一般做法是,增加一个avai ...