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,也是 ...
随机推荐
- noip2017集训测试赛(十一)Problem C: 循环移位
题面 Description 给定一个字符串 ss .现在问你有多少个本质不同的 ss 的子串 t=t1t2⋯tm(m>0)t=t1t2⋯tm(m>0) 使得将 tt 循环左移一位后变成的 ...
- EF for oracle中无法读取配置 显示无法open问题解决方式
1.更新以上设置为 非注销部分 弄了很久很久哈.
- VMware Converter 迁移物理机到 esxi 虚拟机
http://dngood.blog.51cto.com/446195/685082/ VMware Converter 有啥用? VMware Converter 是一款能将物理电脑系统.VMwa ...
- java实现点选汉字验证码(自己修改后的)
参考:http://blog.csdn.net/qq_26680031/article/details/51168527 package com.rd.p2p.web; import java.awt ...
- ubuntu16 安装cron 以及使用
https://www.cnblogs.com/intval/p/5763929.html sudo apt-get install cron 启动cron sudo service cron sta ...
- python的几个概念
1.函数在传递实参的时候是传递的是引用而不是从内存中重新赋相同值给形参. 2.函数名带圆括号和不带圆括号.函数名带圆括号是函数的调用,而函数名代表的是函数体. 3.函数返回值,在函数没有返回值的时候默 ...
- ios--计时器演示样例:一闪一闪亮晶晶(动画)
本演示样例实现的动画:UIView定时消失随后又闪现,即一闪一闪的动画 所採用的技术:定时器(NSTimer) + 动画(beginAnimations/commitAnimations) 详细实现步 ...
- JS方面重点摘要(一)
1.获取样式(1)style只能获取到行间样式的属性(2)火狐getComputedStyle(obj,null)[attr],IE:obj.currentStyle[attr] 2.ready.on ...
- [Algorithms] Classify Mystery Items with the K-Nearest Neighbors Algorithm in JavaScript
The k-nearest neighbors algorithm is used for classification of unknown items and involves calculati ...
- Android Tabhost置于底部
方法一: <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id=&qu ...