⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rsa.frm

📁 中国石化IC开发程序
💻 FRM
字号:
VERSION 5.00
Object = "{10336011-AB2C-11D4-8E1C-00002100DD42}#4.0#0"; "MWAX.OCX"
Begin VB.Form RSA 
   Caption         =   "RSA"
   ClientHeight    =   6270
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   7695
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   ScaleHeight     =   6270
   ScaleWidth      =   7695
   StartUpPosition =   3  '窗口缺省
   Begin VB.CommandButton RSA 
      Caption         =   "RSA"
      Height          =   495
      Left            =   2760
      TabIndex        =   0
      Top             =   3600
      Width           =   2415
   End
   Begin MWAX.MWactiveX MW 
      Left            =   0
      Top             =   0
      _ExtentX        =   2990
      _ExtentY        =   1508
   End
End
Attribute VB_Name = "RSA"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

Private Sub Form_Load()
Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
mbRet = MW.Com_Open(geU_Com1, geU_Baud9600)
If Not mbRet Then MsgBox MW.Errshow
End Sub

Private Sub Form_Unload(Cancel As Integer)
mbRet = MW.Com_Close
If Not mbRet Then MsgBox MW.Errshow
End Sub

Private Sub RSA_Click()
'上卡座
Dim psRet As String
Dim psMw As String
mbRet = MW.Reset
If Not mbRet Then MsgBox MW.Errshow
mbRet = MW.Delete
If Not mbRet Then MsgBox MW.Errshow
'建MF
mbRet = MW.Create_File(geU_CreateMF, "FFFFFFFFFFFFFFFF0f011234567890")
If Not mbRet Then MsgBox MW.Errshow
'建EF(定长记录文件)
mbRet = MW.Create_File(geU_CreateEF, "00030a0f000092") '公钥文件
If Not mbRet Then MsgBox MW.Errshow
mbRet = MW.Create_File(geU_CreateEF, "00040b0f000157") '私钥文件
If Not mbRet Then MsgBox MW.Errshow
'建结束MF
mbRet = MW.Create_File(geU_CreateEndMF, "")
If Not mbRet Then MsgBox MW.Errshow
mbRet = MW.Select_File(geU_SelectEF, "0003")
If Not mbRet Then MsgBox MW.Errshow
mbRet = MW.Select_File(geU_SelectEF, "0004")
If Not mbRet Then MsgBox MW.Errshow
'mbRet = mw.Generate_RSAkey(geU_64BitKey, "00040003")
'mbRet = mw.Hash_Data("12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", psRet)
If Not mbRet Then MsgBox MW.Errshow
Dim pbIn(150) As Byte
Dim pbOut(150) As Byte
'写公钥文件
'C1  06  C00813000002(类型说明)
mbRet = MW.Asc_To_Hex("C106C00813000002", pbIn(0), 8)
mbRet = MW.Update_Binary(geU_Data, "83", 0, 8, pbIn())
If Not mbRet Then MsgBox MW.Errshow

'C1  81  00 + N(128字节)
mbRet = MW.Asc_To_Hex("C18100dec87b331c037a804a3017caf2448e41c9d4ead3e5b4006b51cc43536813d907922fe8ae976516ab3301ff77a3017b41ffbacd7c4c1cdfd49ae4bea5599c2b4d5963a54e194e186a94f27c72bdaa36a9fcee11c063204d7f9914ac0ec25fd4caf3ab0d6cf99ec4df10423efc55271120b03101350ac40487cf307bf256df79d1", pbIn(0), 131)
mbRet = MW.Update_Binary(geU_Data, "83", 8, 131, pbIn())
If Not mbRet Then MsgBox MW.Errshow

'C1  05  00 + E(4字节)
mbRet = MW.Asc_To_Hex("C1050000010001", pbIn(0), 7)
mbRet = MW.Update_Binary(geU_Data, "83", 139, 7, pbIn())
If Not mbRet Then MsgBox MW.Errshow

mbRet = MW.Read_Binary("83", 130, 16, pbOut())
If Not mbRet Then MsgBox MW.Errshow
mbRet = MW.Hex_To_Asc(pbOut(0), psRet, 16)

'写私钥文件
'C2  06  C10813000005(类型说明)
mbRet = MW.Asc_To_Hex("C206C10813000005", pbIn(0), 8)
mbRet = MW.Update_Binary(geU_Data, "84", 0, 8, pbIn())
If Not mbRet Then MsgBox MW.Errshow

'C2  41  00 + Q(64字节)
mbRet = MW.Asc_To_Hex("C24100ff3b177a34334375297b2d3b2537437f763d783d3e7b717335331338393f2279157f793f027d103e5b7f443a10313a702a792f7c1977173f0d356f74037312a3", pbIn(0), 67)
mbRet = MW.Update_Binary(geU_Data, "84", 8, 67, pbIn())
If Not mbRet Then MsgBox MW.Errshow

'C2  41  00 + P  (64字节)
mbRet = MW.Asc_To_Hex("C24100df745b3f3470497b053b657f327f5b75633c5d7f067a247f40330e7f7d7b187f5d362135347c4b7b6c3257796e745579597a103f477f7c75553d223b297a3cfb", pbIn(0), 67)
mbRet = MW.Update_Binary(geU_Data, "84", 75, 67, pbIn())
If Not mbRet Then MsgBox MW.Errshow

'C2  41  00 + QU(64字节)
mbRet = MW.Asc_To_Hex("C24100288dcb664810f43322978577dff28977f89adbbbb941a12fb3f3347acc0f8d6fcea268ec183075b594dc335c0fbfb72224cf529b3cce1e9443fefedb6cab6951", pbIn(0), 67)
mbRet = MW.Update_Binary(geU_Data, "84", 142, 67, pbIn())
If Not mbRet Then MsgBox MW.Errshow

'C2  41  00 + DQ(64字节)
mbRet = MW.Asc_To_Hex("C24100be7f4967a19c7d85ee1f0cc46f638f128c9b16aa877f354f2aeee3327cafddb8084eab9d56eb277b93692af03773b6cd4f364235daffe32ee159f7c4dc6a4007", pbIn(0), 67)
mbRet = MW.Update_Binary(geU_Data, "84", 209, 67, pbIn())
If Not mbRet Then MsgBox MW.Errshow

'C2  41  00 + DP(64字节)
mbRet = MW.Select_File_Psam(geU_SelectEF, "0004")
If Not mbRet Then MsgBox MW.Errshow
mbRet = MW.Asc_To_Hex("C24100be2f0756752838b236d2c5e10bb6afbdea773f5054cff26e47d2ecbcffac9c3e12b476711539d0f8bc2ee09a9eb2eee8b88a1677f53f814b500017396964fbaf", pbIn(0), 67)
mbRet = MW.Update_Binary(geU_Data, "01", 20, 67, pbIn())
If Not mbRet Then MsgBox MW.Errshow

'此函数中加密的数据为128字节.
mbRet = MW.RSA_Crypt_OR_RSA_Verify("0003", "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456", psRet)
If Not mbRet Then MsgBox MW.Errshow

mbRet = MW.RSA_Decrypt_OR_RSA_Sign("0004", psRet, psMw)
If Not mbRet Then MsgBox MW.Errshow

'反向签名.
'mbRet = mw.RSA_Decrypt_OR_RSA_Sign("0004", "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456", psRet)
'If Not mbRet Then MsgBox mw.ErrShow
'此函数中加密的数据为128字节.
'mbRet = mw.RSA_Crypt_OR_RSA_Verify("0003", psRet, psMw)
'If Not mbRet Then MsgBox mw.ErrShow
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -