通过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加解密的更多相关文章

  1. c# AES128 加解密算法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  2. 使用bouncycastle进行DESede/DESeee/AES128/AES192/AES256的加解密

    前言 默认的jdk不支持DESeee的算法,本地化的JDK中配置有拦截规则,可以通过使用bouncycastle的jar包中的DESEngine类来进行DESeee算法的运算. DES的8字节加解密 ...

  3. openssl enc 加解密

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  4. Java 使用AES/CBC/PKCS7Padding 加解密字符串

    介于java 不支持PKCS7Padding,只支持PKCS5Padding 但是PKCS7Padding 和 PKCS5Padding 没有什么区别要实现在java端用PKCS7Padding填充, ...

  5. Go语言加解密--AES简单实践

    AES加解密的简单实现,代码如下. package main import ( "crypto/aes" "crypto/cipher" "encod ...

  6. iOS URL加解密

    URL加解密 背景介绍 iOS 下URL加解密,项目使用AFNetworking 虽然是使用HTTPS,但是从安全方面考虑,在很多情况下还是需要对url的参数进行加密的. 接口如 https://19 ...

  7. OpenSSL aes加解密实例+base64编解码

    OpenSSL aes加解密简单实例+base64编解码 #include <stdio.h> #include <string.h> #include <memory. ...

  8. 关于java php go 中AES加解密秘钥长度问题

    今天心血来朝,想用go把php中的一个小功能重写一下,但在解密aes加密的数据时碰到了个坑! php的mcrypt拓展(貌似php7.1版本以上不支持了)提供了aes的加解密: 而且php aes 的 ...

  9. 最强加密算法?AES加解密算法Matlab和Verilog实现

    目录 背景 AES加密的几种模式 基本运算 AES加密原理 Matlab实现 Verilog实现 Testbench 此本文首发于公众号[两猿社],重点讲述了AES加密算法的加密模式和原理,用MATL ...

  10. 痞子衡嵌入式:SNVS Master Key仅在i.MXRT10xx Hab关闭时才能用于DCP加解密

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT系列中数据协处理器DCP使用SNVS Master Key加解密的注意事项. i.MXRT不仅仅是处理性能超强的MCU,也是 ...

随机推荐

  1. unity3d Billboard

    CameraFacingBillboard   CameraFacingBillboard From Unify Community Wiki   Jump to: navigation, searc ...

  2. Unity3D的主要类图

    原文:http://blog.teotigraphix.com/2011/05/17/unity3d-uml-gameobject-cheat-sheet/ 1. GameObject_Structu ...

  3. SQL表操作

    //创建一个名为TEST1的表空间 CREATE SMALLFILE TABLESPACE "TEST1" DATAFILE 'G:\ORACLE_11G\ORADATA\ORCL ...

  4. Spark-submit脚本解读

    #!/usr/bin/env bash # # Licensed to the Apache Software Foundation (ASF) under one or more # contrib ...

  5. 【java】开源工具包hutool

    开源工具包hutool GitHub地址:https://github.com/looly/hutool 项目主页:http://www.hutool.cn/

  6. 使用ASIHTTPRequest 编译提示找不到"libxml/HTMLparser.h"的解决方法

    使用ASIHTTPRequest xcode编译提示找不到"libxml/HTMLparser.h",解决方法如下: 1>.在xcode中左边选中项目的root节点,在中间编 ...

  7. 【D3.js】Focus + Context 折线图

    利用D3.js库实现Focus+Context的折线图.读取data.tsv文件数据 index.html <!DOCTYPE html> <meta charset="u ...

  8. ElasticSearch 监控单个节点详解

    1.介绍 集群健康 就像是光谱的一端——对集群的所有信息进行高度概述. 而 节点统计值 API 则是在另一端.它提供一个让人眼花缭乱的统计数据的数组,包含集群的每一个节点统计值. 节点统计值 提供的统 ...

  9. ansible自动化工具使用

    1.服务端配置 安装即可,无需启动,在安装ansible之前需要配置epel源 [root@m01 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirr ...

  10. Angular 学习笔记——service &constant

    <!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="C ...