├── README.md
├── bin
└── RSAEncryptAndDecode
│ ├── 1public.pem
│ ├── libeay32.dll
│ └── pro22.pem
├── doc
└── sample.jpg
├── project
├── RSAEncryptAndDecode.dpr
├── RSAEncryptAndDecode.dproj
├── RSAEncryptAndDecode.dproj.local
├── RSAEncryptAndDecode.identcache
├── RSAEncryptAndDecode.res
├── RSAEncryptAndDecode.stat
├── Unit1.ddp
├── Unit1.dfm
├── Unit1.pas
└── id_rsa.pub
└── public
├── EncdDecd_suman.pas
├── RSAOpenSSL.pas
└── libeay32.pas
/README.md:
--------------------------------------------------------------------------------
1 | # RSA via OpenSSL libeay32
2 | delphi2010以后版本,使用openssl中的libeay32.dll
3 | 提供基于私钥/公钥的:1、RSA加密解密 2、SHA1/SHA256/SHA512摘要运算,3、Sha1withRSA/Sha256withRSA/Sha512withRSA签名
4 | 其中签名可用于JWT规范
5 |
6 | # 应用截图
7 |
8 | 1、RSAEncryptAndDecode
9 |
10 | 
--------------------------------------------------------------------------------
/bin/RSAEncryptAndDecode/1public.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN PUBLIC KEY-----
2 | MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtp7DAMRpexwvKE8TAgzm
3 | HLgD9xTvBFJ5fGn4B7CTI1VsQckpKU0Dd+UAaJ6xhgTK7tsOHRxtn7MRQiqIst1D
4 | DxAFuzE60+YYaNdRsy8SxIV+WLGPDnfrRr92stJJcc5zQKs8XYKO8a+g5OwIMouV
5 | xw4jvhGUU7UWy6paPK8vKCaSnpF5v5GiXU/Gob4QhRKB89dk6xY7sQ8LBRi/kQ8t
6 | VLeReE281f0dWlqG0j8vweI0G515rbYjs4uUjbNDQyfr2cRUYujj+zvsRJz8y4nA
7 | hKEQxwsmmMMrB8MfqRGd+Cj1qjX0+ub0+ysPtCYksSJs51MQS/zNyrOdfj0bALCV
8 | bwIDAQAB
9 | -----END PUBLIC KEY-----
10 |
--------------------------------------------------------------------------------
/bin/RSAEncryptAndDecode/libeay32.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ZYHPRO/RSAEncryptAndDecode/cbd612d1d2a028495f04f53ebad643b2ca90be5c/bin/RSAEncryptAndDecode/libeay32.dll
--------------------------------------------------------------------------------
/bin/RSAEncryptAndDecode/pro22.pem:
--------------------------------------------------------------------------------
1 | Bag Attributes
2 | localKeyID: 01 00 00 00
3 | friendlyName: 780b679b-1c48-4afe-8760-b1d740977f82
4 | Microsoft CSP Name: Microsoft Enhanced Cryptographic Provider v1.0
5 | Key Attributes
6 | X509v3 Key Usage: 10
7 | -----BEGIN PRIVATE KEY-----
8 | MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC2nsMAxGl7HC8o
9 | TxMCDOYcuAP3FO8EUnl8afgHsJMjVWxBySkpTQN35QBonrGGBMru2w4dHG2fsxFC
10 | Koiy3UMPEAW7MTrT5hho11GzLxLEhX5YsY8Od+tGv3ay0klxznNAqzxdgo7xr6Dk
11 | 7Agyi5XHDiO+EZRTtRbLqlo8ry8oJpKekXm/kaJdT8ahvhCFEoHz12TrFjuxDwsF
12 | GL+RDy1Ut5F4TbzV/R1aWobSPy/B4jQbnXmttiOzi5SNs0NDJ+vZxFRi6OP7O+xE
13 | nPzLicCEoRDHCyaYwysHwx+pEZ34KPWqNfT65vT7Kw+0JiSxImznUxBL/M3Ks51+
14 | PRsAsJVvAgMBAAECggEBAJLkMwBr/FhtPDVVHXn5vCJ/lZjp+rPkTxnW9w3gZwn1
15 | zSVBVF2HN/H5fpGojCy7sCvegYTC+B6L36b0JY6R0T3Nan6+w43sN9gk0e+qPpNa
16 | uV1IPUSrCtGWcji2UyM6p5Pt6Jliye33khhxDsrxYiGB6xgYddG7CMH7nafQVcMZ
17 | n6KdGJzvELBNlq0mpR8HmN1bxkuwNKiTU/5OrnyCk0iDHrCFgJix8vVHIvRJJk5K
18 | Vt27TwIkD8MQNVliRASVIt6uDbApNYv76QtYLzWdGlljZbIN4nr6oK3Syzr4t11u
19 | FFfKhmfaZ0zkJm+U2IDri4gpJDfvaMrgjYP8gshPCIECgYEA4HjTIJm8bYkP/35q
20 | 9IS8w1F9FVNukWFT0Drw9D+UtZ9Nwi+jjfZLFu0pQLCl7sd44jGZrNwA/myjYFdy
21 | +UXYIKIM5fY8Kww0nyyx+empmPdwFC7W9/UfYexq6AcydTdekx9I9pA4xfcN7eO7
22 | zFukzAgwFnejL3qePeV0cRR3qq8CgYEA0EUaHKDea6ylBuwDwE+gCrBf6rDVGqEL
23 | nP7fR+kgOBX24SRoHM6yGYF/CC1mIi1ngMH2zQ9PONUsLjOo5E8Yj5aGyLKBBGAc
24 | M9lgn5TllsDtQWQ/kBEomi2cmUE9w2CG2rKs3EtkZXBw74sAvozwlGqo5/F/2Tpk
25 | wK0x23U5cUECgYEA0epLzhXWrzxY2J35GVc0SxdeeN3/7TZuMbGc+VyoDby+89Sn
26 | B7AGgpcgV92aHxUtB6JIyu0mhMdFdWfyHghh2AqTM0408DDG2P/sJACOWH00s7sl
27 | ztXNFj8HrppkZld0OvMrwWAXp5Gk1g185tvg3ejeR3R0B4eMieeVH9Z7HgMCgYAz
28 | vUb8X7aBt1UUACP6bY2Luj9J1X5LbECvUt3zRmX7qPE5A0teBLdYAMSnKmgaC3+Q
29 | DB+c17XNn5+nJqxJc6DdYv6+8yF8DchT1Sfc3SegKPOH8DieOLUGgFhL9lo6pEs8
30 | H3E0FQKu9J0J1VVtASRvKoQlguhI9em7uAsPwvJvQQKBgFXDFX3peroqyQwsMjoK
31 | MeQylvZzeENDf1htpyWVfTNq6lC4wFSbJEzoexrnHiHVDdDWVHtup+8cr3dcGmBl
32 | +8uCvvo/i8L/gi+2AqKQSz7AsFxqiknf5qjAP1LkH2gb9bPneyzKy13FIbB7Nb3O
33 | ea8DZa9JV1UcnFkoKlGUT1+z
34 | -----END PRIVATE KEY-----
35 | Bag Attributes
36 | localKeyID: 01 00 00 00
37 | subject=/emailAddress=shi_meijuan@itrus.com.cn/OU=UID:31344441453932423338313040303030313030303131413143/CN=\xE7\x95\x85\xE6\x8D\xB7\xE9\x80\x9A(\xE6\xB5\x8B\xE8\xAF\x95)/OU=\xE7\xBD\x91\xE9\x93\xB6\xE9\x80\x9A\xE4\xBF\xA1\xE8\xAF\x81\xE4\xB9\xA6/O=\xE5\x8C\x97\xE4\xBA\xAC\xE5\xA4\xA9\xE5\xA8\x81\xE8\xAF\x9A\xE4\xBF\xA1\xE7\x94\xB5\xE5\xAD\x90\xE5\x95\x86\xE5\x8A\xA1\xE6\x9C\x8D\xE5\x8A\xA1\xE6\x9C\x89\xE9\x99\x90\xE5\x85\xAC\xE5\x8F\xB8
38 | issuer=/C=CN/O=iTrusChina/OU=China Trust Network/CN=iTrusChina Class 2 Enterprise Subscriber CA - G3
39 | -----BEGIN CERTIFICATE-----
40 | MIIEbzCCA1egAwIBAgIUIulZQ96P6XinBV3JQF3JUxPLINYwDQYJKoZIhvcNAQEF
41 | BQAwezELMAkGA1UEBhMCQ04xEzARBgNVBAoMCmlUcnVzQ2hpbmExHDAaBgNVBAsM
42 | E0NoaW5hIFRydXN0IE5ldHdvcmsxOTA3BgNVBAMMMGlUcnVzQ2hpbmEgQ2xhc3Mg
43 | MiBFbnRlcnByaXNlIFN1YnNjcmliZXIgQ0EgLSBHMzAeFw0xNjA1MTkwNjAxMDFa
44 | Fw0xNzA1MTkwNjAxMDFaMIHeMScwJQYJKoZIhvcNAQkBFhhzaGlfbWVpanVhbkBp
45 | dHJ1cy5jb20uY24xPzA9BgNVBAsMNlVJRDozMTM0NDQ0MTQ1MzkzMjQyMzMzODMx
46 | MzA0MDMwMzAzMDMxMzAzMDMwMzEzMTQxMzE0MzEaMBgGA1UEAwwR55WF5o236YCa
47 | KOa1i+ivlSkxGzAZBgNVBAsMEue9kemTtumAmuS/oeivgeS5pjE5MDcGA1UECgww
48 | 5YyX5Lqs5aSp5aiB6K+a5L+h55S15a2Q5ZWG5Yqh5pyN5Yqh5pyJ6ZmQ5YWs5Y+4
49 | MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtp7DAMRpexwvKE8TAgzm
50 | HLgD9xTvBFJ5fGn4B7CTI1VsQckpKU0Dd+UAaJ6xhgTK7tsOHRxtn7MRQiqIst1D
51 | DxAFuzE60+YYaNdRsy8SxIV+WLGPDnfrRr92stJJcc5zQKs8XYKO8a+g5OwIMouV
52 | xw4jvhGUU7UWy6paPK8vKCaSnpF5v5GiXU/Gob4QhRKB89dk6xY7sQ8LBRi/kQ8t
53 | VLeReE281f0dWlqG0j8vweI0G515rbYjs4uUjbNDQyfr2cRUYujj+zvsRJz8y4nA
54 | hKEQxwsmmMMrB8MfqRGd+Cj1qjX0+ub0+ysPtCYksSJs51MQS/zNyrOdfj0bALCV
55 | bwIDAQABo4GGMIGDMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgWgMGkGA1UdHwEB/wRf
56 | MF0wW6BZoFeGVWh0dHA6Ly90b3BjYS5pdHJ1cy5jb20uY24vcHVibGljL2l0cnVz
57 | Y3JsP0NBPTJDMUQ5NzI4OERFMTRGODVDNjY0MDY5OEZCMjQ3MzlBRjQ3REZEMUEw
58 | DQYJKoZIhvcNAQEFBQADggEBAMu8xI+7KPb39Q/2pZ1Aw1GUQvWis1Ph56nJFiTm
59 | 3EwklW5yT+EuBB0QOa47B/WJCoFOKfmrvA0lx87t2U99xvApqsH49UouHUzaButr
60 | kBRhnxfzQmA+IECyd/optCPgvoOKxYHS8TccaUv+Oq1PGlYktTMcaWPP/FcqPqFx
61 | imSr5qiACjNBTmsBsafS38cLcZvcKk1wYoqAxtnn3/6GXvb6su064pEAS2s3SVaq
62 | 5m1ZXhbfJFkr0v10AThGyzzoAod0PpfZ51l57hBiMs1qzzX/fvJxn17l9gfq60mz
63 | NnTDgvwn0fKmamLngLrfuoFWi29QVz41pPKp/NZhLL76qMk=
64 | -----END CERTIFICATE-----
65 |
--------------------------------------------------------------------------------
/doc/sample.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ZYHPRO/RSAEncryptAndDecode/cbd612d1d2a028495f04f53ebad643b2ca90be5c/doc/sample.jpg
--------------------------------------------------------------------------------
/project/RSAEncryptAndDecode.dpr:
--------------------------------------------------------------------------------
1 | program RSAEncryptAndDecode;
2 |
3 | uses
4 | Forms,
5 | Unit1 in 'Unit1.pas' {Form1},
6 | EncdDecd_suman in '..\public\EncdDecd_suman.pas',
7 | libeay32 in '..\public\libeay32.pas',
8 | RSAOpenSSL in '..\public\RSAOpenSSL.pas';
9 |
10 | {$R *.res}
11 |
12 | begin
13 | Application.Initialize;
14 | Application.CreateForm(TForm1, Form1);
15 | Application.Run;
16 | end.
17 |
--------------------------------------------------------------------------------
/project/RSAEncryptAndDecode.dproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {590f0ba8-a8a4-469f-b216-0077de53794c}
4 | RSAEncryptAndDecode.dpr
5 | Debug
6 | DCC32
7 | RSAUtil.exe
8 | VCL
9 | 18.2
10 | True
11 | Debug
12 | Win32
13 | 1025
14 | Application
15 |
16 |
17 | true
18 |
19 |
20 | true
21 | Base
22 | true
23 |
24 |
25 | true
26 | Base
27 | true
28 |
29 |
30 | true
31 | Base
32 | true
33 |
34 |
35 | true
36 | Cfg_1
37 | true
38 | true
39 |
40 |
41 | true
42 | Base
43 | true
44 |
45 |
46 | true
47 | Cfg_2
48 | true
49 | true
50 |
51 |
52 | true
53 | Cfg_2
54 | true
55 | true
56 |
57 |
58 | 1049
59 | RSAEncryptAndDecode
60 | CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
61 | Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)
62 |
63 |
64 | System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
65 | Debug
66 | $(BDS)\bin\default_app.manifest
67 | 1033
68 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png
69 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png
70 | true
71 | true
72 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)
73 | $(BDS)\bin\delphi_PROJECTICON.ico
74 |
75 |
76 | $(BDS)\bin\default_app.manifest
77 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png
78 | RSAUtil_Icon3.ico
79 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png
80 | true
81 |
82 |
83 | 7.0
84 | 0
85 | False
86 | 0
87 | RELEASE;$(DCC_Define)
88 |
89 |
90 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)
91 | 1033
92 | true
93 | true
94 | true
95 |
96 |
97 | 7.0
98 | DEBUG;$(DCC_Define)
99 |
100 |
101 | Debug
102 |
103 |
104 | .\..\bin\RSAEncryptAndDecode
105 | 1033
106 | true
107 | .\..\temp
108 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)
109 | true
110 | true
111 |
112 |
113 | Delphi.Personality.12
114 | VCLApplication
115 |
116 |
117 |
118 | False
119 | True
120 | False
121 |
122 |
123 | False
124 | False
125 | 1
126 | 0
127 | 0
128 | 0
129 | False
130 | False
131 | False
132 | False
133 | False
134 | 1049
135 | 1251
136 |
137 |
138 |
139 |
140 | 1.0.0.0
141 |
142 |
143 |
144 |
145 |
146 | 1.0.0.0
147 |
148 |
149 |
150 | RSAEncryptAndDecode.dpr
151 |
152 |
153 | Microsoft Office 2000 Sample Automation Server Wrapper Components
154 | Microsoft Office XP Sample Automation Server Wrapper Components
155 |
156 |
157 |
158 | True
159 | True
160 | False
161 |
162 |
163 |
164 |
165 | RSAEncryptAndDecode.exe
166 | true
167 |
168 |
169 |
170 |
171 | 0
172 | .dll;.bpl
173 |
174 |
175 | 1
176 | .dylib
177 |
178 |
179 |
180 |
181 | Contents\Resources
182 | 1
183 |
184 |
185 |
186 |
187 | classes
188 | 1
189 |
190 |
191 |
192 |
193 | Contents\MacOS
194 | 0
195 |
196 |
197 | 1
198 |
199 |
200 |
201 |
202 | 1
203 |
204 |
205 | 1
206 |
207 |
208 | 1
209 |
210 |
211 |
212 |
213 | res\drawable-xxhdpi
214 | 1
215 |
216 |
217 |
218 |
219 | library\lib\mips
220 | 1
221 |
222 |
223 |
224 |
225 | 1
226 |
227 |
228 | 1
229 |
230 |
231 | 0
232 |
233 |
234 | 1
235 |
236 |
237 | 1
238 |
239 |
240 | library\lib\armeabi-v7a
241 | 1
242 |
243 |
244 | 1
245 |
246 |
247 |
248 |
249 | 0
250 |
251 |
252 | 1
253 | .framework
254 |
255 |
256 |
257 |
258 | 1
259 |
260 |
261 | 1
262 |
263 |
264 |
265 |
266 | 1
267 |
268 |
269 | 1
270 |
271 |
272 | 1
273 |
274 |
275 |
276 |
277 | 1
278 |
279 |
280 | 1
281 |
282 |
283 | 1
284 |
285 |
286 |
287 |
288 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
289 | 1
290 |
291 |
292 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
293 | 1
294 |
295 |
296 |
297 |
298 | 1
299 |
300 |
301 | 1
302 |
303 |
304 | 1
305 |
306 |
307 |
308 |
309 |
310 | library\lib\armeabi
311 | 1
312 |
313 |
314 |
315 |
316 | 0
317 |
318 |
319 | 1
320 |
321 |
322 | 1
323 |
324 |
325 |
326 |
327 | 1
328 |
329 |
330 | 1
331 |
332 |
333 | 1
334 |
335 |
336 |
337 |
338 | res\drawable-normal
339 | 1
340 |
341 |
342 |
343 |
344 | res\drawable-xhdpi
345 | 1
346 |
347 |
348 |
349 |
350 | res\drawable-large
351 | 1
352 |
353 |
354 |
355 |
356 | 1
357 |
358 |
359 | 1
360 |
361 |
362 | 1
363 |
364 |
365 |
366 |
367 | Assets
368 | 1
369 |
370 |
371 | Assets
372 | 1
373 |
374 |
375 |
376 |
377 |
378 | res\drawable-hdpi
379 | 1
380 |
381 |
382 |
383 |
384 | library\lib\armeabi-v7a
385 | 1
386 |
387 |
388 |
389 |
390 |
391 |
392 | Assets
393 | 1
394 |
395 |
396 | Assets
397 | 1
398 |
399 |
400 |
401 |
402 | 1
403 |
404 |
405 | 1
406 |
407 |
408 | 1
409 |
410 |
411 |
412 |
413 | res\values
414 | 1
415 |
416 |
417 |
418 |
419 | res\drawable-small
420 | 1
421 |
422 |
423 |
424 |
425 | res\drawable
426 | 1
427 |
428 |
429 |
430 |
431 | 1
432 |
433 |
434 | 1
435 |
436 |
437 | 1
438 |
439 |
440 |
441 |
442 | 1
443 |
444 |
445 |
446 |
447 | res\drawable
448 | 1
449 |
450 |
451 |
452 |
453 | 0
454 |
455 |
456 | 0
457 |
458 |
459 | 0
460 |
461 |
462 | 0
463 |
464 |
465 | 0
466 |
467 |
468 | 0
469 |
470 |
471 |
472 |
473 | library\lib\armeabi-v7a
474 | 1
475 |
476 |
477 |
478 |
479 | 0
480 | .bpl
481 |
482 |
483 | 1
484 | .dylib
485 |
486 |
487 | 1
488 | .dylib
489 |
490 |
491 | 1
492 | .dylib
493 |
494 |
495 | 1
496 | .dylib
497 |
498 |
499 |
500 |
501 | res\drawable-mdpi
502 | 1
503 |
504 |
505 |
506 |
507 | res\drawable-xlarge
508 | 1
509 |
510 |
511 |
512 |
513 | res\drawable-ldpi
514 | 1
515 |
516 |
517 |
518 |
519 |
520 |
521 |
522 |
523 |
524 |
525 |
526 |
527 |
528 | 12
529 |
530 |
531 |
532 | MainSource
533 |
534 |
535 |
536 |
537 |
538 |
539 |
540 |
541 | Cfg_2
542 | Base
543 |
544 |
545 | Base
546 |
547 |
548 | Cfg_1
549 | Base
550 |
551 |
552 |
553 |
554 |
555 |
556 |
557 |
558 |
--------------------------------------------------------------------------------
/project/RSAEncryptAndDecode.dproj.local:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1899-12-30 00:00:00.000.871,=C:\Users\Administrator\Desktop\demoOpenSSLlibeay32withDelphixe-master\public\libeay32.pas
5 | 1899-12-30 00:00:00.000.836,=C:\Users\Administrator\Desktop\demoOpenSSLlibeay32withDelphixe-master\public\EncdDecd_suman.pas
6 | 1899-12-30 00:00:00.000.898,=C:\Users\Administrator\Desktop\demoOpenSSLlibeay32withDelphixe-master\public\RSAOpenSSL.pas
7 | 1899-12-30 00:00:00.000.207,C:\Users\Administrator\Desktop\demoOpenSSLlibeay32withDelphixe-master\project\RSAUtil.dproj=C:\Users\Administrator\Desktop\demoOpenSSLlibeay32withDelphixe-master\project\RSAEncryptAndDecode.dproj
8 |
9 |
10 |
--------------------------------------------------------------------------------
/project/RSAEncryptAndDecode.identcache:
--------------------------------------------------------------------------------
1 | >E:\GitHub\Delphi\RSAEncryptAndDecode\public\EncdDecd_suman.pas 6E:\GitHub\Delphi\RSAEncryptAndDecode\project\Unit1.pas 8E:\GitHub\Delphi\RSAEncryptAndDecode\public\libeay32.pas DE:\GitHub\Delphi\RSAEncryptAndDecode\project\RSAEncryptAndDecode.dpr :E:\GitHub\Delphi\RSAEncryptAndDecode\public\RSAOpenSSL.pas
--------------------------------------------------------------------------------
/project/RSAEncryptAndDecode.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ZYHPRO/RSAEncryptAndDecode/cbd612d1d2a028495f04f53ebad643b2ca90be5c/project/RSAEncryptAndDecode.res
--------------------------------------------------------------------------------
/project/RSAEncryptAndDecode.stat:
--------------------------------------------------------------------------------
1 | [Stats]
2 | EditorSecs=1041
3 | DesignerSecs=1216
4 | InspectorSecs=755
5 | CompileSecs=17979
6 | OtherSecs=316
7 | StartTime=2022-05-08 16:34:23
8 | RealKeys=0
9 | EffectiveKeys=0
10 | DebugSecs=286
11 |
--------------------------------------------------------------------------------
/project/Unit1.ddp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ZYHPRO/RSAEncryptAndDecode/cbd612d1d2a028495f04f53ebad643b2ca90be5c/project/Unit1.ddp
--------------------------------------------------------------------------------
/project/Unit1.dfm:
--------------------------------------------------------------------------------
1 | object Form1: TForm1
2 | Left = 674
3 | Top = 252
4 | Caption = 'SHAwithRSA/SHA Sample'
5 | ClientHeight = 544
6 | ClientWidth = 635
7 | Color = clBtnFace
8 | DefaultMonitor = dmDesktop
9 | Font.Charset = DEFAULT_CHARSET
10 | Font.Color = clWindowText
11 | Font.Height = -11
12 | Font.Name = 'MS Sans Serif'
13 | Font.Style = []
14 | OldCreateOrder = False
15 | Position = poScreenCenter
16 | OnClose = FormClose
17 | OnCreate = FormCreate
18 | PixelsPerInch = 96
19 | TextHeight = 13
20 | object PageControl1: TPageControl
21 | Left = 0
22 | Top = 0
23 | Width = 635
24 | Height = 544
25 | ActivePage = TabSheet3
26 | Align = alClient
27 | TabOrder = 0
28 | object TabSheet1: TTabSheet
29 | Caption = 'SHAwithRSA'
30 | object Panel5: TPanel
31 | Left = 0
32 | Top = 391
33 | Width = 627
34 | Height = 125
35 | Align = alBottom
36 | BevelInner = bvLowered
37 | TabOrder = 0
38 | object Button28: TButton
39 | Left = 32
40 | Top = 16
41 | Width = 145
42 | Height = 25
43 | Caption = 'SHA1withRSA'
44 | TabOrder = 0
45 | OnClick = Button8Click
46 | end
47 | object Button29: TButton
48 | Left = 200
49 | Top = 16
50 | Width = 146
51 | Height = 25
52 | Caption = 'SHA256withRSA'
53 | TabOrder = 1
54 | OnClick = Button9Click
55 | end
56 | object Button30: TButton
57 | Left = 376
58 | Top = 16
59 | Width = 137
60 | Height = 25
61 | Caption = 'SHA512withRSA'
62 | TabOrder = 2
63 | OnClick = Button10Click
64 | end
65 | end
66 | object Panel6: TPanel
67 | Left = 0
68 | Top = 0
69 | Width = 627
70 | Height = 391
71 | Align = alClient
72 | BevelOuter = bvNone
73 | TabOrder = 1
74 | object GroupBox9: TGroupBox
75 | Left = 0
76 | Top = 0
77 | Width = 627
78 | Height = 177
79 | Align = alTop
80 | Caption = #24453#21152#23494#25968#25454
81 | TabOrder = 0
82 | object mmo_sharsa: TMemo
83 | Left = 2
84 | Top = 15
85 | Width = 623
86 | Height = 160
87 | Align = alClient
88 | Lines.Strings = (
89 |
90 | 'GET\n /v3/certificates\n 1554208460\n 593BEC0C930BF1AFEB40B4A08C' +
91 | '8FB242\n \n')
92 | TabOrder = 0
93 | end
94 | end
95 | object GroupBox12: TGroupBox
96 | Left = 0
97 | Top = 177
98 | Width = 627
99 | Height = 214
100 | Align = alClient
101 | Caption = #21152#23494#23494#25991
102 | TabOrder = 1
103 | object mmo_sharsa_crypted: TMemo
104 | Left = 2
105 | Top = 15
106 | Width = 623
107 | Height = 197
108 | Align = alClient
109 | ScrollBars = ssVertical
110 | TabOrder = 0
111 | end
112 | end
113 | end
114 | end
115 | object TabSheet2: TTabSheet
116 | Caption = 'SHA1/SHA256/SHA512'
117 | ImageIndex = 1
118 | object Panel3: TPanel
119 | Left = 0
120 | Top = 428
121 | Width = 627
122 | Height = 88
123 | Align = alBottom
124 | BevelInner = bvLowered
125 | TabOrder = 0
126 | object Button15: TButton
127 | Left = 14
128 | Top = 34
129 | Width = 121
130 | Height = 25
131 | Caption = 'SHA1'
132 | TabOrder = 0
133 | OnClick = Button5Click
134 | end
135 | object Button16: TButton
136 | Left = 174
137 | Top = 34
138 | Width = 121
139 | Height = 25
140 | Caption = 'SHA256'
141 | TabOrder = 1
142 | OnClick = Button6Click
143 | end
144 | object Button17: TButton
145 | Left = 344
146 | Top = 34
147 | Width = 121
148 | Height = 25
149 | Caption = 'SHA512'
150 | TabOrder = 2
151 | OnClick = Button7Click
152 | end
153 | end
154 | object Panel4: TPanel
155 | Left = 0
156 | Top = 0
157 | Width = 627
158 | Height = 428
159 | Align = alClient
160 | BevelOuter = bvNone
161 | TabOrder = 1
162 | object GroupBox5: TGroupBox
163 | Left = 0
164 | Top = 0
165 | Width = 627
166 | Height = 185
167 | Align = alTop
168 | Caption = #24453#21152#23494#25968#25454
169 | TabOrder = 0
170 | object mmo_sha: TMemo
171 | Left = 2
172 | Top = 15
173 | Width = 623
174 | Height = 168
175 | Align = alClient
176 | Lines.Strings = (
177 |
178 | 'GET\n /v3/certificates\n 1554208460\n 593BEC0C930BF1AFEB40B4A08C' +
179 | '8FB242\n \n')
180 | TabOrder = 0
181 | end
182 | end
183 | object GroupBox7: TGroupBox
184 | Left = 0
185 | Top = 185
186 | Width = 627
187 | Height = 243
188 | Align = alClient
189 | Caption = #21152#23494#23494#25991
190 | TabOrder = 1
191 | object mmo_sha_crypted: TMemo
192 | Left = 2
193 | Top = 15
194 | Width = 623
195 | Height = 226
196 | Align = alClient
197 | ScrollBars = ssVertical
198 | TabOrder = 0
199 | end
200 | end
201 | end
202 | end
203 | object TabSheet3: TTabSheet
204 | Caption = 'Public/PrivateCrypting'
205 | ImageIndex = 2
206 | object Panel2: TPanel
207 | Left = 0
208 | Top = 0
209 | Width = 627
210 | Height = 454
211 | Align = alClient
212 | BevelOuter = bvNone
213 | TabOrder = 0
214 | object GroupBox1: TGroupBox
215 | Left = 0
216 | Top = 0
217 | Width = 627
218 | Height = 81
219 | Align = alTop
220 | Caption = #24453#21152#23494#25968#25454
221 | TabOrder = 0
222 | object mmo_pp: TMemo
223 | Left = 2
224 | Top = 15
225 | Width = 623
226 | Height = 64
227 | Align = alClient
228 | Lines.Strings = (
229 |
230 | 'GET\n /v3/certificates\n 1554208460\n 593BEC0C930BF1AFEB40B4A08C' +
231 | '8FB242\n \n')
232 | TabOrder = 0
233 | end
234 | end
235 | object GroupBox2: TGroupBox
236 | Left = 0
237 | Top = 81
238 | Width = 627
239 | Height = 105
240 | Align = alTop
241 | Caption = #21152#23494#21518#23494#25991
242 | TabOrder = 1
243 | object mmo_pp_crypted: TMemo
244 | Left = 2
245 | Top = 15
246 | Width = 623
247 | Height = 88
248 | Align = alClient
249 | ScrollBars = ssVertical
250 | TabOrder = 0
251 | end
252 | end
253 | object GroupBox3: TGroupBox
254 | Left = 0
255 | Top = 186
256 | Width = 627
257 | Height = 105
258 | Align = alTop
259 | Caption = #35299#23494#21518#23494#25991
260 | TabOrder = 2
261 | object mmo_pp_decrypted: TMemo
262 | Left = 2
263 | Top = 15
264 | Width = 623
265 | Height = 88
266 | Align = alClient
267 | ScrollBars = ssVertical
268 | TabOrder = 0
269 | end
270 | end
271 | object GroupBox4: TGroupBox
272 | Left = 0
273 | Top = 291
274 | Width = 627
275 | Height = 163
276 | Align = alClient
277 | Caption = #21152#35299#23494#26085#24535
278 | TabOrder = 3
279 | object mmo_pp_log: TMemo
280 | Left = 2
281 | Top = 15
282 | Width = 623
283 | Height = 146
284 | Align = alClient
285 | ScrollBars = ssVertical
286 | TabOrder = 0
287 | end
288 | end
289 | end
290 | object Panel1: TPanel
291 | Left = 0
292 | Top = 454
293 | Width = 627
294 | Height = 62
295 | Align = alBottom
296 | BevelInner = bvLowered
297 | TabOrder = 1
298 | object Button1: TButton
299 | Left = 3
300 | Top = 14
301 | Width = 121
302 | Height = 25
303 | Caption = #20844#38053#21152#23494
304 | TabOrder = 0
305 | OnClick = Button1Click
306 | end
307 | object Button2: TButton
308 | Left = 130
309 | Top = 14
310 | Width = 121
311 | Height = 25
312 | Caption = #31169#38053#35299#23494
313 | TabOrder = 1
314 | OnClick = Button2Click
315 | end
316 | object Button3: TButton
317 | Left = 369
318 | Top = 14
319 | Width = 121
320 | Height = 25
321 | Caption = #31169#38053#21152#23494
322 | TabOrder = 2
323 | OnClick = Button3Click
324 | end
325 | object Button4: TButton
326 | Left = 496
327 | Top = 14
328 | Width = 121
329 | Height = 25
330 | Caption = #20844#38053#35299#23494
331 | TabOrder = 3
332 | OnClick = Button4Click
333 | end
334 | end
335 | end
336 | end
337 | end
338 |
--------------------------------------------------------------------------------
/project/Unit1.pas:
--------------------------------------------------------------------------------
1 | unit Unit1;
2 |
3 | interface
4 |
5 | uses
6 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 | Dialogs, StdCtrls, ExtCtrls,RSAOpenSSL, Vcl.ComCtrls;
8 |
9 | type
10 | TForm1 = class(TForm)
11 | Panel1: TPanel;
12 | Button1: TButton;
13 | Button2: TButton;
14 | Button3: TButton;
15 | Button4: TButton;
16 | PageControl1: TPageControl;
17 | TabSheet1: TTabSheet;
18 | TabSheet2: TTabSheet;
19 | TabSheet3: TTabSheet;
20 | Panel2: TPanel;
21 | GroupBox1: TGroupBox;
22 | mmo_pp: TMemo;
23 | GroupBox2: TGroupBox;
24 | mmo_pp_crypted: TMemo;
25 | GroupBox3: TGroupBox;
26 | mmo_pp_decrypted: TMemo;
27 | GroupBox4: TGroupBox;
28 | mmo_pp_log: TMemo;
29 | Panel3: TPanel;
30 | Button15: TButton;
31 | Button16: TButton;
32 | Button17: TButton;
33 | Panel4: TPanel;
34 | GroupBox5: TGroupBox;
35 | mmo_sha: TMemo;
36 | GroupBox7: TGroupBox;
37 | mmo_sha_crypted: TMemo;
38 | Panel5: TPanel;
39 | Button28: TButton;
40 | Button29: TButton;
41 | Button30: TButton;
42 | Panel6: TPanel;
43 | GroupBox9: TGroupBox;
44 | mmo_sharsa: TMemo;
45 | GroupBox12: TGroupBox;
46 | mmo_sharsa_crypted: TMemo;
47 | procedure FormCreate(Sender: TObject);
48 | procedure Button1Click(Sender: TObject);
49 | procedure Button2Click(Sender: TObject);
50 | procedure Button3Click(Sender: TObject);
51 | procedure Button4Click(Sender: TObject);
52 | procedure Button5Click(Sender: TObject);
53 | procedure Button6Click(Sender: TObject);
54 | procedure Button8Click(Sender: TObject);
55 | procedure Button9Click(Sender: TObject);
56 | procedure Button7Click(Sender: TObject);
57 | procedure Button10Click(Sender: TObject);
58 | procedure FormClose(Sender: TObject; var Action: TCloseAction);
59 | private
60 | { Private declarations }
61 | fRSAOpenSSL : TRSAOpenSSL;
62 | public
63 | { Public declarations }
64 | end;
65 |
66 | var
67 | Form1: TForm1;
68 |
69 | implementation
70 |
71 |
72 | {$R *.dfm}
73 |
74 | procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
75 | begin
76 | fRSAOpenSSL.Free;
77 | end;
78 |
79 | procedure TForm1.FormCreate(Sender: TObject);
80 | var
81 | aPathToPublickKey, aPathToPrivateKey: string;
82 | begin
83 | aPathToPublickKey := '1public.pem';
84 | //aPathToPublickKey := 'public.cer';
85 |
86 | aPathToPrivateKey := 'pro22.pem';
87 | fRSAOpenSSL := TRSAOpenSSL.Create(aPathToPublickKey, aPathToPrivateKey);
88 |
89 |
90 | end;
91 |
92 | procedure TForm1.Button1Click(Sender: TObject);
93 | var
94 | aRSAData: TRSAData;
95 | begin
96 | aRSAData.DecryptedData := mmo_pp.Lines.Text;
97 | fRSAOpenSSL.PublickEncrypt(aRSAData);
98 | if aRSAData.ErrorResult = 0 then
99 | mmo_pp_crypted.Lines.Text := aRSAData.CryptedData;
100 | mmo_pp_log.Lines.Add(aRSAData.ErrorMessage);
101 |
102 | end;
103 |
104 | procedure TForm1.Button2Click(Sender: TObject);
105 | var
106 | aRSAData: TRSAData;
107 | begin
108 | aRSAData.CryptedData := mmo_pp_crypted.Lines.Text;
109 | fRSAOpenSSL.PrivateDecrypt(aRSAData);
110 | if aRSAData.ErrorResult = 0 then
111 | mmo_pp_decrypted.Lines.Text := aRSAData.DecryptedData;
112 | mmo_pp_log.Lines.Add(aRSAData.ErrorMessage);
113 |
114 | end;
115 |
116 | procedure TForm1.Button3Click(Sender: TObject);
117 | var
118 | aRSAData: TRSAData;
119 | begin
120 | aRSAData.DecryptedData := mmo_pp.Lines.Text;
121 | fRSAOpenSSL.PrivateEncrypt11(aRSAData);
122 | if aRSAData.ErrorResult = 0 then
123 | mmo_pp_crypted.Lines.Text := aRSAData.CryptedData;
124 | mmo_pp_log.Lines.Add(aRSAData.ErrorMessage);
125 |
126 | end;
127 |
128 | procedure TForm1.Button4Click(Sender: TObject);
129 | var
130 | aRSAData: TRSAData;
131 | begin
132 | aRSAData.CryptedData := mmo_pp_crypted.Lines.Text;
133 | fRSAOpenSSL.PublicDecrypt(aRSAData);
134 | if aRSAData.ErrorResult = 0 then
135 | mmo_pp_decrypted.Lines.Text := aRSAData.DecryptedData;
136 | mmo_pp_log.Lines.Add(aRSAData.ErrorMessage);
137 | end;
138 |
139 | procedure TForm1.Button5Click(Sender: TObject);
140 | begin
141 | mmo_sha_crypted.Text := fRSAOpenSSL.SHA1(mmo_sha.Lines.Text);
142 | end;
143 |
144 | procedure TForm1.Button6Click(Sender: TObject);
145 | begin
146 | mmo_sha_crypted.Text := fRSAOpenSSL.SHA256(mmo_sha.lines.Text);
147 | end;
148 |
149 | procedure TForm1.Button7Click(Sender: TObject);
150 | begin
151 | mmo_sha_crypted.Text := fRSAOpenSSL.SHA512(mmo_sha.lines.Text);
152 | end;
153 |
154 | procedure TForm1.Button8Click(Sender: TObject);
155 |
156 | begin
157 | mmo_sharsa_crypted.Text := fRSAOpenSSL.SHA1_Sign_PK(mmo_sharsa.Lines.Text);
158 | end;
159 |
160 | procedure TForm1.Button9Click(Sender: TObject);
161 | var
162 | s1:AnsiString;
163 | begin
164 | s1 := mmo_sharsa.Lines.Text;
165 | mmo_sharsa_crypted.Text := fRSAOpenSSL.SHA256_Sign_PK(s1);
166 | end;
167 |
168 |
169 |
170 | procedure TForm1.Button10Click(Sender: TObject);
171 | var
172 | s1:string;
173 | begin
174 | s1 := mmo_sharsa.Lines.Text;
175 | mmo_sharsa_crypted.Text := fRSAOpenSSL.SHA512_Sign_PK(s1);
176 | end;
177 |
178 | end.
179 |
--------------------------------------------------------------------------------
/project/id_rsa.pub:
--------------------------------------------------------------------------------
1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCBQElleM/QCAZfWNpPm+e1RXr3rycC7MmO1RwcV4a8DOPIeA8etAv23G0S2ZK/qjAewX/IAmvku5SlTXEIiVhQwUPHF5y4USfElIHiwy8DOE6hAx90NkvSly396lCNLgLg/0mP2i2ddGEfy3DYZfV8pSd8uurNaDhoyR8fAvY2IQ== RSA-1024
2 |
--------------------------------------------------------------------------------
/public/EncdDecd_suman.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ZYHPRO/RSAEncryptAndDecode/cbd612d1d2a028495f04f53ebad643b2ca90be5c/public/EncdDecd_suman.pas
--------------------------------------------------------------------------------
/public/RSAOpenSSL.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ZYHPRO/RSAEncryptAndDecode/cbd612d1d2a028495f04f53ebad643b2ca90be5c/public/RSAOpenSSL.pas
--------------------------------------------------------------------------------
/public/libeay32.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ZYHPRO/RSAEncryptAndDecode/cbd612d1d2a028495f04f53ebad643b2ca90be5c/public/libeay32.pas
--------------------------------------------------------------------------------