Wayne-XY 2021-07-04 23:10 采纳率: 0%
浏览 23
已结题

C#生成COM组件,PB 调用问题

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security.Cryptography;
using System.IO;
using System.Text.RegularExpressions;

namespace Report
{

    public class ReportPathDecript
    {
        private static readonly byte[] Key3 = new byte[] { 0xA6, 0x3B, 0x9E, 0x14, 0x45, 0x5C, 0xB5, 0x55, 0x2B, 0x6E, 0xB7, 0x28, 0x2C, 0xD1, 0xC4, 0xB8 };
        private static readonly byte[] Key4 = new byte[] { 0x4D, 0x7E, 0xD0, 0x6A, 0xBA, 0xB8, 0xCA, 0x37, 0x79, 0x54, 0x29, 0x71, 0xB0, 0xCB, 0x0D, 0x23 };

        /// <summary>
        /// 全院路径解密
        /// </summary>
        /// <param name="contents">加密路径</param>
        /// <returns></returns>
        public static string HSPSDecrypt(string contents)
        {

            if (isBase64(contents))
            {

        contents = AESDecrypt(contents, Key4, Key3);
                return contents;
            }
            return contents;
        }
        private static bool isBase64(string str)
        {
            string base64Pattern = "^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$";

            return Regex.IsMatch(str, base64Pattern);
        }

        public static string AESDecrypt(string contents, byte[] key, byte[] iv)
        {
            string result = string.Empty;
            byte[] input = Convert.FromBase64String(contents);
            byte[] tmp = new byte[input.Length];

            Aes aes = Aes.Create();
            aes.Padding = PaddingMode.ISO10126;

            ICryptoTransform decryptor = aes.CreateDecryptor(key, iv);
            using (MemoryStream ms = new MemoryStream(input))
            {
                using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
                {
                    cs.Read(tmp, 0, tmp.Length);
                    result = Encoding.UTF8.GetString(tmp).Replace("\0", "");
                }
            }
            aes.Clear();
            return result;
        }

    }
}

上面是一段C#使用AES解密路径的一段语句,我想使用PB去调用 C#生成的COM,请问上面的语句如何修改能让我使用PB调用呢?
下面是我使用PB 调用的语句,我应该是输入一个加密路径,他会返回一条解密后的路径给我。

string c
int   intValue   
oleobject   objOle   
objOle=create   OLEObject   
intValue=objOle.connecttonewobject("Report.ReportPathDecript")
c=string(objOle.HSPSDecrypt('加密路径'))
messagebox("结果",c)

加密后路径:AWbksVAPWYIZlB0HnUJdpq+hvTJXLpkbbK9ltRt0amM9kuN6VGYMpc567jPpmGBq
解密后路径:2020-03-26\7ca71554-1b75-4bc2-80b6-8f0f30f8a32e
求教大神我该怎么写,我不会用C# ,如果可以的话您帮生成一下类库DLL 我直接注册COM组件使用是最好啦,谢谢^0^

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-07-06 16:52
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。

    ​​​​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题