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,也是 ...
随机推荐
- Map泛型集合-显示企鹅信息
package collection; /** * 宠物类 * @author * */ public class Pet { private String name; private String ...
- Jekyll搭建个人博客-拓展版
关于Jekyll Jekyll 是一个简单的博客形态的静态站点生产机器.它有一个模版目录,其中包含原始文本格式的文档,通过 Markdown (或者 Textile) 以及 Liquid 转化成一个完 ...
- Android background tint颜色渲染
该篇文章主要是讲Android颜色渲染,首先先来看看PorterDuff,对绘图非常重要. PorterDuff的由来: 相信大多数人看到这个ProterDuff单词很奇怪了吧,这肿么个意思呢,然后就 ...
- JAVA常见算法题(七)
package com.xiaowu.demo; /** * 输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. * * @author WQ * */ public class De ...
- web-51job(前程无忧)-账户、简历-数据库设计
ylbtech-DatabaseDesgin:web-51job(前程无忧)-账户.简历-数据库设计 1.A,数据库关系图 1.B,数据库设计脚本 /App_Data/1,Account.sql ...
- python项目构建工具zc.buildout
转载:http://blog.csdn.net/u011630575/article/details/52940099 buildout简介 Buildout 是一个基于Python的构建工具, Bu ...
- 转:mybatis3中@SelectProvider的使用技巧
mybatis3中@SelectProvider的使用技巧 mybatis的原身是ibatis,现在已经脱离了apache基金会,新官网是http://www.mybatis.org/. mybati ...
- Loadrunner 工作原理图
1.LoadRunner的总体架构图,从图中可以看出组件VUGen, Controller和Analysis之间的关系. 2.LoadRunner的工作原理,从图中可以看出如何利用LoadRunner ...
- 11. 配置ContextPath【从零开始学Spring Boot】
转载:http://blog.csdn.net/linxingliang/article/details/51637036 spring boot默认是/ ,这样直接通过http://ip:port/ ...
- vscode - 使用Settings进行同步扩展以及配置信息等
1. 创建token(记住要复制上面的token): https://github.com/settings/tokens. 2. 创建gist id https://gist.github.com/ ...