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,也是 ...
随机推荐
- iOS duplicate symbol for architecture arm64 解决办法
导致这个问题的原因有多种: 1.重复定义了const常量. 2.多个第三方库同时用到了某个函数库. 暂时列举这几种,以后遇到了其他原因再加.
- .Net中的不可变集合(Immutable Collection)简介
今天发现MS在Nuget上发布了一个Immutable Collection的程序集,提供了对不可变对象的集合的支持. 简单的看了一下,貌似支持的还比较全: ImmutableArray<T&g ...
- 利用json2csharp快速生成C#类
有的时候,我们需要将一些Json格式的字符串反序列化为.Net对象,虽然有强大的Json.net可以帮助我们快速完成这一操作.但首先仍需要我们根据Json数据手动编写C#类,这也是一件比较枯燥而容易出 ...
- 异常如果一直被throws抛出的话就会被jvm异常处理器处理了
异常如果一直被throws抛出的话就会被jvm异常处理器处理了,这时jvm会跳出正常运行状态. 异常如果一直被throws抛出的话就会被jvm异常处理器处理了,这时jvm会跳出正常运行状态. 异常如果 ...
- xcode 6 exporting ipa 提示 Your account already has a valid iOS distribution certificate
在Product - Archive 包过程中,选择Save for Ad hoc Deployment模式[给内部人员测试],export包时,弹出了如下提示 自己遇到时候问题:首先adhoc需要本 ...
- 常见java异常
1. java.lang.NullPointerException(空指针异常) 调用了未经初始化的对象或者是不存在的对象 经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时 ...
- Microsoft .Net Remoting
什么是Remoting,简而言之,我们可以将其看作是一种分布式处理方式.从微软的产品角度来看,可以说Remoting就是DCOM的一种升级,它改善了很多功能,并极好的融合到.Net平台下.Micros ...
- 2016.3.16__HTML5新特性__第八天
HTML 5 + CSS 3 假设您认为这篇文章还不错,能够去H5专题介绍中查看很多其它相关文章. 今日代码非常冗杂,所以非常多内容直接摘自网上,假设造成您的不适.请留言告知. 非常感谢. 输入标签, ...
- TFS 设置(转)
一 参考以下两个链接进行相关软件的安装和用户权限配置: http://www.cnblogs.com/WilsonWu/archive/2011/11/24/2261674.html http://w ...
- sone1动态树
这尼吗桑心病狂的动态树:http://www.lydsy.com/JudgeOnline/problem.php?id=3153 终于让哥以一种碉堡的姿势过了: 牛B轰轰的最后两个都是我的...无法超 ...