Foxtable(狐表)用户栏目专家坐堂 → [求助]AES加解密问题


  共有3152人关注过本帖树形打印复制链接

主题:[求助]AES加解密问题

帅哥哟,离线,有人找我吗?
kenmen
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:150 积分:1088 威望:0 精华:0 注册:2012/11/16 10:21:00
[求助]AES加解密问题  发帖心情 Post By:2020/11/7 14:35:00 [只看该作者]

老师,请问一下~
要如何再传送JSON格式的数据时,先将JSON格式数据先做 URL Encode 编码,再进行AES加密,AES加密相关讯息如下:
AES加密的强度设定方式是 128 bit CipherMode : CBC PaddingMode PKCS7

目前手边有的资料如下:
加密范例: Key= ejCk326UnaZWKisg IV= q9jcZX8Ib9LM8wYk
(1)加密前 Data 资料:
{"Name":"Test","ID":"A123456789"}
(2)URLEncode 编码后结果:
%7B%22Name%22%3A%22Test%22%2C%22ID%22%3A%22A123456789%22%7D
(3)AES加密后结果:
uvI4yrErM37XNQkXGAgRgJAgHn2t72jahaMZzYhWL1HmvH4WV18VJDP2i9pTbC+tby5nxVExLLFyAkbjbS2Dvg==

请问在Foxtable中要如何实现上述功能呢?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110334 积分:561518 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/7 14:38:00 [只看该作者]

请找服务商提供接口开发文档和.net示例

 回到顶部
帅哥哟,离线,有人找我吗?
kenmen
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:150 积分:1088 威望:0 精华:0 注册:2012/11/16 10:21:00
  发帖心情 Post By:2020/11/7 14:48:00 [只看该作者]

老师您好,
服务商所提供的开发文档及.NET示例如下,
https://github.com/ECPay/Invoice_Net
小弟才疏学浅,不晓得该如何应用到Foxtable中,
能否帮忙一下!感激不尽!

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110334 积分:561518 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/7 15:54:00 [只看该作者]

里面提供了sdk,直接使用即可,下载3楼链接里的内容,解压。

1、把目录“SDK元件”里的Ecpay.EInvoice.Integration.dll复制到foxtable安装目录,然后添加引用:http://www.foxtable.com/webhelp/topics/1936.htm
2、打开foxtable安装目录里的Foxtable.exe.config,在以下节点添加红字的这部分内容即可:

……  

  <runtime>  

    <AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false" />  

    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">  

      <dependentAssembly>  

        <assemblyIdentity name="C1.C1Zip.4"  

          publicKeyToken="79882d576c6336da"  

          culture="neutral" />  

        <bindingRedirect oldVersion="4.0.20191.359" newVersion="4.0.20183.338" />  

      </dependentAssembly>  

      <dependentAssembly>  

        <assemblyIdentity name="C1.Win.Bitmap.4"  

          publicKeyToken="944ae1ea0e47ca04"  

          culture="neutral" />  

        <bindingRedirect oldVersion="4.0.20183.338" newVersion="4.0.20191.359" />  

      </dependentAssembly>  

      <dependentAssembly>  

        <assemblyIdentity name="C1.C1Excel.4"  

          publicKeyToken="79882d576c6336da"  

          culture="neutral" />  

        <bindingRedirect oldVersion="4.0.20191.359" newVersion="4.0.20183.338" />  

      </dependentAssembly>  

      <dependentAssembly>  

        <assemblyIdentity name="Newtonsoft.Json"  

          publicKeyToken="30ad4fe6b2a6aeed"  

          culture="neutral" />  

        <bindingRedirect oldVersion="7.0.0.0" newVersion="12.0.0.0" />  

      </dependentAssembly>  

    </assemblyBinding>  

  </runtime>  

……

添加后保存。最后记得备份一下Foxtable.exe.config,因为如果升级Foxtable新版本,这个文件会被覆盖,需要重新改一下。

3、到目录“Sample Code”里找到对应要做的功能的目录。比如04.一般立fa piao,使用vs打开,或者找到其中的Issue.aspx.cs文件使用文本编辑器打开,转换为vb.net代码使用:http://converter.telerik.com/,转换后补上完整的命名空间(如下红字),如:
Dim invc As New Ecpay.EInvoice.Integration.Models.InvoiceCreate()
invc.MerchantID = "2000132"
invc.RelateNumber = "ecPay" & New Random().[Next](0, 99999).ToString()
invc.CustomerID = ""
invc.CustomerIdentifier = ""
invc.CustomerName = ""
invc.CustomerAddr = "客戶地址"
invc.CustomerPh
invc.CustomerEmail = "test@ecpay.com.tw"
invc.Print = Ecpay.EInvoice.Integration.Enumeration.PrintEnum.No
invc.Donation = Ecpay.EInvoice.Integration.Enumeration.DonationEnum.No
invc.LoveCode = ""
invc.carruerType = Ecpay.EInvoice.Integration.Enumeration.CarruerTypeEnum.PhoneBarcode
invc.CarruerNum = "/6G+X3LQ"
invc.CarruerNum = invc.CarruerNum.Replace("+"c, " "c)
invc.SalesAmount = "300"
invc.InvoiceRemark = "(qwrrg)"
invc.invType = Ecpay.EInvoice.Integration.Enumeration.TheWordTypeEnum.Normal
Dim item As New Ecpay.EInvoice.Integration.Models.Item()
With item
    .ItemName = "糧食"
    .ItemCount = "1"
    .ItemWord = "個"
    .ItemPrice = "100.1"
    .ItemAmount = "100.1"
End With
invc.Items.Add(item)
item = New Ecpay.EInvoice.Integration.Models.Item()
With item
    .ItemName = "糧食"
    .ItemPrice = "200"
    .ItemCount = "1"
    .ItemWord = "個"
    .ItemAmount = "200"
End With
invc.Items.Add(item)
Dim inv As New Ecpay.EInvoice.Integration.Service.Invoice(Of Ecpay.EInvoice.Integration.Models.InvoiceCreate)()
inv.Environment = Ecpay.EInvoice.Integration.Enumeration.EnvironmentEnum.Stage
inv.HashIV = "q9jcZX8Ib9LM8wYk"
inv.HashKey = "ejCk326UnaZWKisg"
Dim json As String = inv.post(invc) '调用接口
msgbox(json) '查看返回结果

 回到顶部
帅哥哟,离线,有人找我吗?
kenmen
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:150 积分:1088 威望:0 精华:0 注册:2012/11/16 10:21:00
  发帖心情 Post By:2020/11/7 16:21:00 [只看该作者]

老师,您是说这个SDK已经包含了AES加解密及URL Encode 编码功能了吗?
我实作试试,有不懂得地方在请教老师,谢谢!

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110334 积分:561518 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/7 16:23:00 [只看该作者]

SDK已经把相关功能都封装好了,不需要在自行处理

 回到顶部
帅哥哟,离线,有人找我吗?
kenmen
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:150 积分:1088 威望:0 精华:0 注册:2012/11/16 10:21:00
  发帖心情 Post By:2020/11/7 17:08:00 [只看该作者]

老师,不好意思,在打搅您一下!
有关引用部分,我用浏览将DLL档选进来之后,是否还要在『命名空间』这个页签设置『命名空间』及『空间别名』呢?
如果要的话,是否按照您教学上所提示的,使用『Ecpay.EInvoice.Integration』作为『命名空间』及『空间别名』,
这样是否可行?
感谢您拨空回覆我的问题,谢谢!

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110334 积分:561518 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/7 17:16:00 [只看该作者]

如果使用4楼的代码,不需要再加什么别名。

如果要加,自己把红字代码改为别名

 回到顶部
帅哥哟,离线,有人找我吗?
kenmen
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:150 积分:1088 威望:0 精华:0 注册:2012/11/16 10:21:00
  发帖心情 Post By:2020/11/7 17:53:00 [只看该作者]

谢谢老师!我有实作成功!
另外,能否再请教一下老师,
这个操作方式,是否只能在高级开发版使用呢?
如果是开发版的话,能否套用这样的方式进行处理呢?
以这个厂商所提供的SDK而言~
感谢老师辛苦的回覆,谢谢!

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110334 积分:561518 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/8 20:14:00 [只看该作者]

这种用法所有版本都可以使用,包括试用版

 回到顶部