php输出后以密文显示,加密解密,_求大神帮看一下,如何根据下面的程序,把明文生成密文谢谢,加密解密 - phpStudy...

求大神帮看一下,如何根据下面的程序,把明文生成密文谢谢

求大神帮看一下,如何根据下面的程序,把明文生成密文谢谢

def parserLicense(self,encCode):

data = base64.b64decode(encCode)

cert = X509.load_cert(I2_CRT)

puk = cert.get_pubkey().get_rsa()

self.code = puk.public_decrypt(data, RSA.pkcs1_padding)

.crt文件如下:

Certificate:

Data:

Version: 3 (0x2)

Serial Number: 1 (0x1)

Signature Algorithm: sha1WithRSAEncryption

Issuer: C=CN, ST=Shanghai, L=Newbury, O=Info2soft, OU=Development/emailAddress=dev@info2soft.com

Validity

Not Before: May 22 00:59:30 2012 GMT

Not After : May 20 00:59:30 2022 GMT

Subject: C=CN, ST=Shanghai, O=Info2soft, OU=Development, CN=I2Soft/emailAddress=dev@info2soft.com

Subject Public Key Info:

Public Key Algorithm: rsaEncryption

RSA Public Key: (2048 bit)

Modulus (2048 bit):

00:cb:63:b8:43:d6:e6:48:ec:eb:35:d5:cd:d8:c1:

d3:47:a9:9a:52:3c:cf:b9:14:87:d3:b3:49:6a:9d:

12:8d:9f:8c:64:6e:32:c5:25:fb:e9:5b:92:56:8f:

5c:7b:f7:f6:d4:3c:fc:ba:dc:4b:3e:16:72:5f:09:

e1:46:be:b7:cb:1e:05:70:36:9b:8f:b4:d2:99:1c:

94:7e:35:da:92:88:94:c3:c1:73:38:58:c3:e3:4a:

cf:ee:8d:7b:a7:ae:ac:d9:27:82:b9:96:ac:72:b0:

e8:1d:d4:3a:17:74:aa:38:81:88:fc:ea:60:7f:ff:

4a:fb:37:e3:5c:35:9d:f1:10:37:76:dd:19:bd:f6:

07:ee:52:30:6b:ae:c5:43:9e:9a:2e:d9:a1:9a:e6:

57:f4:23:5e:a4:8d:ab:c0:d4:0f:4f:2b:43:64:8d:

92:a1:2b:83:f9:cb:56:86:13:c0:6c:c0:9e:1a:7d:

3c:5b:ab:ea:c4:4c:03:0f:61:9d:fb:df:a0:7a:8a:

ed:44:5e:7e:1e:5f:71:75:1d:23:08:88:97:05:98:

13:d4:f0:b7:a7:03:c3:93:08:b6:35:1a:bc:76:45:

37:c0:42:a0:6b:da:5f:c4:bb:f9:7a:68:e1:ab:5a:

de:5b:53:12:d4:d8:61:5e:8e:82:3c:43:8d:46:b8:

47:d5

Exponent: 65537 (0x10001)

X509v3 extensions:

X509v3 Basic Constraints:

CA:FALSE

Netscape Comment:

OpenSSL Generated Certificate

X509v3 Subject Key Identifier:

CF:9C:30:5F:9F:A9:83:A1:EA:FB:EA:39:A6:22:3E:AE:20:0F:30:FF

X509v3 Authority Key Identifier:

keyid:54:64:DF:A2:32:5F:1D:9B:CD:DE:79:8D:73:C0:0A:2C:CB:D5:5D:51

Signature Algorithm: sha1WithRSAEncryption

2a:b4:4b:f4:ec:14:ad:17:b5:48:bc:c2:b3:b5:3e:3b:d0:ba:

d5:cd:7d:07:76:04:75:37:8e:06:70:65:d5:1a:b0:00:f6:ee:

34:5f:d6:dd:b1:3e:b7:cd:bc:fb:83:c9:ad:e6:59:0d:60:15:

b2:c7:3e:9c:26:5f:10:58:f0:59:bd:40:c0:08:5f:0e:b0:7a:

49:fc:b4:67:c4:78:31:b5:48:2e:10:28:b6:65:b5:11:99:ac:

2c:a3:93:fd:b2:2a:a8:37:9f:ff:ee:c6:d7:95:c9:be:c2:5e:

24:e0:f5:c5:4b:05:7a:17:f5:4e:c9:bd:93:7a:41:8f:17:7a:

95:46

-----BEGIN CERTIFICATE-----

MIIDcDCCAtmgAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJDTjER

MA8GA1UECBMIU2hhbmdoYWkxEDAOBgNVBAcTB05ld2J1cnkxEjAQBgNVBAoTCUlu

Zm8yc29mdDEUMBIGA1UECxMLRGV2ZWxvcG1lbnQxIDAeBgkqhkiG9w0BCQEWEWRl

dkBpbmZvMnNvZnQuY29tMB4XDTEyMDUyMjAwNTkzMFoXDTIyMDUyMDAwNTkzMFow

fTELMAkGA1UEBhMCQ04xETAPBgNVBAgTCFNoYW5naGFpMRIwEAYDVQQKEwlJbmZv

MnNvZnQxFDASBgNVBAsTC0RldmVsb3BtZW50MQ8wDQYDVQQDEwZJMlNvZnQxIDAe

BgkqhkiG9w0BCQEWEWRldkBpbmZvMnNvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEF

AAOCAQ8AMIIBCgKCAQEAy2O4Q9bmSOzrNdXN2MHTR6maUjzPuRSH07NJap0SjZ+M

ZG4yxSX76VuSVo9ce/f21Dz8utxLPhZyXwnhRr63yx4FcDabj7TSmRyUfjXakoiU

w8FzOFjD40rP7o17p66s2SeCuZascrDoHdQ6F3SqOIGI/Opgf/9K+zfjXDWd8RA3

dt0ZvfYH7lIwa67FQ56aLtmhmuZX9CNepI2rwNQPTytDZI2SoSuD+ctWhhPAbMCe

Gn08W6vqxEwDD2Gd+9+geortRF5+Hl9xdR0jCIiXBZgT1PC3pwPDkwi2NRq8dkU3

wEKga9pfxLv5emjhq1reW1MS1NhhXo6CPEONRrhH1QIDAQABo3sweTAJBgNVHRME

AjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0

ZTAdBgNVHQ4EFgQUz5wwX5+pg6Hq++o5piI+riAPMP8wHwYDVR0jBBgwFoAUVGTf

ojJfHZvN3nmNc8AKLMvVXVEwDQYJKoZIhvcNAQEFBQADgYEAKrRL9OwUrRe1SLzC

s7U+O9C61c19B3YEdTeOBnBl1RqwAPbuNF/W3bE+t828+4PJreZZDWAVssc+nCZf

EFjwWb1AwAhfDrB6Sfy0Z8R4MbVILhAotmW1EZmsLKOT/bIqqDef/+7G15XJvsJe

JOD1xUsFehf1Tsm9k3pBjxd6lUY=

-----END CERTIFICATE-----

我试了一下应该是第二种,但是运行报错,好像RSA.load_key("/root/Desktop/i2.crt")这里的问题,这个参数是crt文件吗?

[root@localhost Desktop]# ./lic2.py

Traceback (most recent call last):

File "./lic2.py", line 10, in

lic(xx)

File "./lic2.py", line 6, in lic

ReadRSA = RSA.load_key("/root/Desktop/i2.crt")

File "/usr/lib64/python2.6/site-packages/M2Crypto/RSA.py", line 351, in load_key

return load_key_bio(bio, callback)

File "/usr/lib64/python2.6/site-packages/M2Crypto/RSA.py", line 372, in load_key_bio

rsa_error()

File "/usr/lib64/python2.6/site-packages/M2Crypto/RSA.py", line 302, in rsa_error

raise RSAError, m2.err_reason_error_string(m2.err_get_error())

M2Crypto.RSA.RSAError: no start line

我的程序是这样写的:

#!/usr/bin/python

import base64

from M2Crypto import X509, RSA

xx="619CF5B817CA79F1951B6FAE396D906E"

def lic(str):

ReadRSA = RSA.load_key("/root/Desktop/i2.crt")

encrypted = ReadRSA.private_encrypt(str,RSA.pkcs1_padding)

final = base64.b64encode(encrypted)

print final

lic(xx)

相关阅读:

手机端,js固定层的问题

docker 容器 无法启动程序

vue-router 怎么设置mode为html5 模式

关于Android中JNI使用的两个问题?

centOS下设置Rabbitmq服务开机自动启动的方法?

fedora 故障

有没有技术论文阅读讨论相关的社区App

执行brew update

如何解决测试代码重复的问题?

用js实现简易音乐播放器中各播放模式的相关问题

ThinkPHP视图模型指定数据库无效?

这是UI给的设计图,请怎么做出不管在电脑上的什么尺寸(14寸、15.6寸、21寸、23寸等等)都能展示相应的比例是怎么实现呢?

animate()方法,如何让鼠标悬停一次只运动一次,而不是像带记忆一样悬停几次就运动几次。

OS X El Capitan升级后 /usr目录没权限

php curl多线程请求如何让每个线程请求完马上输出结果,而不是等所有请求完成一并输出?

微信支付多账户收款问题

开发chrome插件时如何获取用户的操作事件?

七牛云盘clouddoc 在线云盘上传失败

怎样快速找出一个 dom 绑定了哪些 js 事件?

如何通过ajax获取到的json动态更新博客文章标题和分类数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个基于 OpenSSL 库的 C++ 实现 DES 加密的程序。请确认您已经在您的计算机上安装了 OpenSSL 库。 以下是代码: ```cpp #include <iostream> #include <iomanip> #include <cstring> #include <openssl/des.h> using namespace std; // 将字符串转成 64 位二进制数 void stringToBinary(const char *str, unsigned char *binary) { int len = strlen(str); for (int i = 0; i < len; i++) { for (int j = 0; j < 8; j++) { binary[i * 8 + j] = (str[i] & (1 << (7 - j))) ? 1 : 0; } } } // 将 64 位二进制数转成字符串 void binaryToString(const unsigned char *binary, char *str) { for (int i = 0; i < 8; i++) { str[i] = 0; for (int j = 0; j < 8; j++) { str[i] |= (binary[i * 8 + j] << (7 - j)); } } } // 打印二进制数据 void printBinary(const unsigned char *binary, int len) { for (int i = 0; i < len; i++) { cout << setw(2) << setfill('0') << hex << (int)binary[i]; } cout << endl; } int main() { // 明文 const char *plaintext = "Hello, DES!"; // 密钥 const char *key = "01234567"; // 明文长度 int plaintext_len = strlen(plaintext); // 密钥长度 int key_len = strlen(key); // 将明文和密钥转成 64 位二进制数 unsigned char plaintext_binary[plaintext_len * 8]; unsigned char key_binary[key_len * 8]; stringToBinary(plaintext, plaintext_binary); stringToBinary(key, key_binary); // 打印明文、密钥和二进制数据 cout << "Plaintext: " << plaintext << endl; cout << "Key: " << key << endl; cout << "Plaintext binary: "; printBinary(plaintext_binary, plaintext_len * 8); cout << "Key binary: "; printBinary(key_binary, key_len * 8); // 创建 DES_KEY DES_cblock des_key; memcpy(des_key, key_binary, 8); DES_key_schedule key_schedule; DES_set_key_unchecked(&des_key, &key_schedule); // 加密 unsigned char ciphertext_binary[plaintext_len * 8]; DES_ecb_encrypt((DES_cblock *)plaintext_binary, (DES_cblock *)ciphertext_binary, &key_schedule, DES_ENCRYPT); // 打印密文和二进制数据 cout << "Ciphertext binary: "; printBinary(ciphertext_binary, plaintext_len * 8); // 将密文转成字符串 char ciphertext[plaintext_len + 1]; binaryToString(ciphertext_binary, ciphertext); ciphertext[plaintext_len] = 0; // 打印密钥和解密后的明文 cout << "Key: " << key << endl; cout << "Plaintext after decryption: " << endl; // 解密 unsigned char decrypted_binary[plaintext_len * 8]; DES_ecb_encrypt((DES_cblock *)ciphertext_binary, (DES_cblock *)decrypted_binary, &key_schedule, DES_DECRYPT); // 将解密后的明文转成字符串 char decrypted[plaintext_len + 1]; binaryToString(decrypted_binary, decrypted); decrypted[plaintext_len] = 0; // 打印解密后的明文 cout << decrypted << endl; return 0; } ``` 您可以将 `plaintext` 和 `key` 修改为您需要的值,然后编译并运行程序程序输出明文、密钥、加密后的密文、密钥和解密后的明文

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值