├── 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 | ![image](https://github.com/ZYHPRO/RSAEncryptAndDecode/blob/main/doc/sample.jpg) -------------------------------------------------------------------------------- /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 |
Form1
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.pas6E:\GitHub\Delphi\RSAEncryptAndDecode\project\Unit1.pas8E:\GitHub\Delphi\RSAEncryptAndDecode\public\libeay32.pasDE:\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 --------------------------------------------------------------------------------