RSA密钥转换

RSA密钥转换

1
2
3
4
5
BEGIN RSA PRIVATE KEY
PKCS#1,只是一个 RSA 密钥。

BEGIN PRIVATE KEY
是PKCS#8,表示密钥类型包含在密钥数据本身中。

转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
➜   cat pkcs_1.pem
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAvyGk2G9FRvwxt2phl7ty5FPzQ7F/VsWh9V9LLdkLwgEHpyUz
r9NVA/Lv4tCsAGvA6sEbHIoKxowboUxjp2qGYg/e6AM6ckvNhT8kAJ9B9qpngKlm
r3VmVBH1en+1tFw5NoZGdYSd42qB2zQtGSjV5APVBQU+UXJXw1yZ61Ur7li6Xee8
WsHMac8WsNZiBspk7n/tVnicbV5gPZTxQaZnFiHiI/fQU+J7/PpxP+SD4vuJK0Yx
Lo6Orikmwi0xss/uu+bdraNoESWstnJ/KJ3sWjrGVEa953/eP+D/E32pyWSvvHdZ
rmaNI2sjYEP3qqFRJrQqzi6BxGABAYdwQggPJQIDAQABAoIBAQCL+NybcKmgebMD
KtI755gVZPGjYorqBiQ86UPKWMiGlHCBVPpMSo1ZLgHF7qH4UPFgOnlbZjDMBPF7
J9FXWuj9Sbgp26ti5ualLX91QSxys4rHK8g6uNRuvxQyWPK+GkgACUfyamOil25w
FP7uDPzPVosbeSKRTRa+yMMkGCTrECWwjjDSc0mqnjUUgfdpIUJZIsEc2aDR81e1
0PmcIwNaMF/D6WqGUe5ObM/635YGhqcxIMd1UYxmlMqdmuSicnxFPP1qLAX9SoCa
E9CPo4OT/NCME3vqOK4d3JuA2X/7+x6M6EoaCSd7ntYN5QW+Kp2E9VBYRQ38u+2i
Rn7sWTfFAoGBAN/a/DZMrMkFKPp+AneOstO6KpZw/cJ0OWzsf+0Yi0HXbcaIj/Fp
BkScInXK+Kh0SJkSQg6NjjagywP+gsUhECtYrUqz8dXy81zGhfg3rNeeRFBreMoj
z7aQ2ZyHXibaCeo8KcgSqvgEKE3Xfeb903PpQO9v72ScI1DlJayH61brAoGBANqT
tjQ+6G05LagTcsJxbon/CV4WrloXE8by1tuxFxguYMK/jtEGKBkk15XbxYy5lqdd
sKw7aB8g1dv1zTMkkwugPOTGZ+zGwWZUw6Oy94SRNEWs9UYQA0xBWtpgRe6uq4H6
thYW+IvMt6n9ZhVv6ni26hHAAl7FPZOkj4tVJs4vAoGBANKb+iywKOQb6bj6syF+
7TqMbaMK/YRkyt5zB8yvCd3RbGOceij70bzdVQKUCyyZ8u+pIOMGRWWaFEdWvfvv
poHRtYCSGhZbtKF12fd1kjVunwE2i/dKiBNQ5pwBNBDDlQ5+uiSVg6tCZhUOiFK6
PqZQLxrWqllzGTrzzGUtn7ovAoGAVsjRTjswA7XxJ8vZA9UP46Cscnwk68Y/5v0i
TAYrOkGnz4tJRDrijuEu6+Rfsnk5lOhBLpFDzSA3aWdV+xlpfPM5WkhgmQVtYpkD
OKrlVfBlRcjfddsDxDIqxYv2GEen9yq5Q1oJg1BcGBVxg8901Esj8ro+9qvvwABV
sie0CacCgYBlwvdn8SwxzqLo1evuDukgnC3+Y6554V7BIioZzNDYwVK2gAbOUZEc
9zO34oOglq2vECaNhURqZv2NdSG1RESRnaBwIFhOLVacl5UJuxjrpzHXf98PF6/+
pNTVbdgQKjT2UfWSOCijzsrPI3Vq8aCM+afpoulNyt0NCBXefXB6EA==
-----END RSA PRIVATE KEY-----


➜ openssl pkey -in pkcs_1.pem -out pkcs_8.pem
writing RSA key

➜ cat pkcs_8.pem
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC/IaTYb0VG/DG3
amGXu3LkU/NDsX9WxaH1X0st2QvCAQenJTOv01UD8u/i0KwAa8DqwRscigrGjBuh
TGOnaoZiD97oAzpyS82FPyQAn0H2qmeAqWavdWZUEfV6f7W0XDk2hkZ1hJ3jaoHb
NC0ZKNXkA9UFBT5RclfDXJnrVSvuWLpd57xawcxpzxaw1mIGymTuf+1WeJxtXmA9
lPFBpmcWIeIj99BT4nv8+nE/5IPi+4krRjEujo6uKSbCLTGyz+675t2to2gRJay2
cn8onexaOsZURr3nf94/4P8TfanJZK+8d1muZo0jayNgQ/eqoVEmtCrOLoHEYAEB
h3BCCA8lAgMBAAECggEBAIv43JtwqaB5swMq0jvnmBVk8aNiiuoGJDzpQ8pYyIaU
cIFU+kxKjVkuAcXuofhQ8WA6eVtmMMwE8Xsn0Vda6P1JuCnbq2Lm5qUtf3VBLHKz
iscryDq41G6/FDJY8r4aSAAJR/JqY6KXbnAU/u4M/M9Wixt5IpFNFr7IwyQYJOsQ
JbCOMNJzSaqeNRSB92khQlkiwRzZoNHzV7XQ+ZwjA1owX8PpaoZR7k5sz/rflgaG
pzEgx3VRjGaUyp2a5KJyfEU8/WosBf1KgJoT0I+jg5P80IwTe+o4rh3cm4DZf/v7
HozoShoJJ3ue1g3lBb4qnYT1UFhFDfy77aJGfuxZN8UCgYEA39r8NkysyQUo+n4C
d46y07oqlnD9wnQ5bOx/7RiLQddtxoiP8WkGRJwidcr4qHRImRJCDo2ONqDLA/6C
xSEQK1itSrPx1fLzXMaF+Des155EUGt4yiPPtpDZnIdeJtoJ6jwpyBKq+AQoTdd9
5v3Tc+lA72/vZJwjUOUlrIfrVusCgYEA2pO2ND7obTktqBNywnFuif8JXhauWhcT
xvLW27EXGC5gwr+O0QYoGSTXldvFjLmWp12wrDtoHyDV2/XNMySTC6A85MZn7MbB
ZlTDo7L3hJE0Raz1RhADTEFa2mBF7q6rgfq2Fhb4i8y3qf1mFW/qeLbqEcACXsU9
k6SPi1Umzi8CgYEA0pv6LLAo5BvpuPqzIX7tOoxtowr9hGTK3nMHzK8J3dFsY5x6
KPvRvN1VApQLLJny76kg4wZFZZoUR1a9+++mgdG1gJIaFlu0oXXZ93WSNW6fATaL
90qIE1DmnAE0EMOVDn66JJWDq0JmFQ6IUro+plAvGtaqWXMZOvPMZS2fui8CgYBW
yNFOOzADtfEny9kD1Q/joKxyfCTrxj/m/SJMBis6QafPi0lEOuKO4S7r5F+yeTmU
6EEukUPNIDdpZ1X7GWl88zlaSGCZBW1imQM4quVV8GVFyN912wPEMirFi/YYR6f3
KrlDWgmDUFwYFXGDz3TUSyPyuj72q+/AAFWyJ7QJpwKBgGXC92fxLDHOoujV6+4O
6SCcLf5jrnnhXsEiKhnM0NjBUraABs5RkRz3M7fig6CWra8QJo2FRGpm/Y11IbVE
RJGdoHAgWE4tVpyXlQm7GOunMdd/3w8Xr/6k1NVt2BAqNPZR9ZI4KKPOys8jdWrx
oIz5p+mi6U3K3Q0IFd59cHoQ
-----END PRIVATE KEY-----


➜ openssl rsa -in pkcs_8.pem -out test.pem
writing RSA key
➜ cat test.pem
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAvyGk2G9FRvwxt2phl7ty5FPzQ7F/VsWh9V9LLdkLwgEHpyUz
r9NVA/Lv4tCsAGvA6sEbHIoKxowboUxjp2qGYg/e6AM6ckvNhT8kAJ9B9qpngKlm
r3VmVBH1en+1tFw5NoZGdYSd42qB2zQtGSjV5APVBQU+UXJXw1yZ61Ur7li6Xee8
WsHMac8WsNZiBspk7n/tVnicbV5gPZTxQaZnFiHiI/fQU+J7/PpxP+SD4vuJK0Yx
Lo6Orikmwi0xss/uu+bdraNoESWstnJ/KJ3sWjrGVEa953/eP+D/E32pyWSvvHdZ
rmaNI2sjYEP3qqFRJrQqzi6BxGABAYdwQggPJQIDAQABAoIBAQCL+NybcKmgebMD
KtI755gVZPGjYorqBiQ86UPKWMiGlHCBVPpMSo1ZLgHF7qH4UPFgOnlbZjDMBPF7
J9FXWuj9Sbgp26ti5ualLX91QSxys4rHK8g6uNRuvxQyWPK+GkgACUfyamOil25w
FP7uDPzPVosbeSKRTRa+yMMkGCTrECWwjjDSc0mqnjUUgfdpIUJZIsEc2aDR81e1
0PmcIwNaMF/D6WqGUe5ObM/635YGhqcxIMd1UYxmlMqdmuSicnxFPP1qLAX9SoCa
E9CPo4OT/NCME3vqOK4d3JuA2X/7+x6M6EoaCSd7ntYN5QW+Kp2E9VBYRQ38u+2i
Rn7sWTfFAoGBAN/a/DZMrMkFKPp+AneOstO6KpZw/cJ0OWzsf+0Yi0HXbcaIj/Fp
BkScInXK+Kh0SJkSQg6NjjagywP+gsUhECtYrUqz8dXy81zGhfg3rNeeRFBreMoj
z7aQ2ZyHXibaCeo8KcgSqvgEKE3Xfeb903PpQO9v72ScI1DlJayH61brAoGBANqT
tjQ+6G05LagTcsJxbon/CV4WrloXE8by1tuxFxguYMK/jtEGKBkk15XbxYy5lqdd
sKw7aB8g1dv1zTMkkwugPOTGZ+zGwWZUw6Oy94SRNEWs9UYQA0xBWtpgRe6uq4H6
thYW+IvMt6n9ZhVv6ni26hHAAl7FPZOkj4tVJs4vAoGBANKb+iywKOQb6bj6syF+
7TqMbaMK/YRkyt5zB8yvCd3RbGOceij70bzdVQKUCyyZ8u+pIOMGRWWaFEdWvfvv
poHRtYCSGhZbtKF12fd1kjVunwE2i/dKiBNQ5pwBNBDDlQ5+uiSVg6tCZhUOiFK6
PqZQLxrWqllzGTrzzGUtn7ovAoGAVsjRTjswA7XxJ8vZA9UP46Cscnwk68Y/5v0i
TAYrOkGnz4tJRDrijuEu6+Rfsnk5lOhBLpFDzSA3aWdV+xlpfPM5WkhgmQVtYpkD
OKrlVfBlRcjfddsDxDIqxYv2GEen9yq5Q1oJg1BcGBVxg8901Esj8ro+9qvvwABV
sie0CacCgYBlwvdn8SwxzqLo1evuDukgnC3+Y6554V7BIioZzNDYwVK2gAbOUZEc
9zO34oOglq2vECaNhURqZv2NdSG1RESRnaBwIFhOLVacl5UJuxjrpzHXf98PF6/+
pNTVbdgQKjT2UfWSOCijzsrPI3Vq8aCM+afpoulNyt0NCBXefXB6EA==
-----END RSA PRIVATE KEY-----

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
s = 'MIIEpAIBAAKCAQEAvyGk2G9FRvwxt2phl7ty5FPzQ7F/VsWh9V9LLdkLwgEHpyUzr9NVA/Lv4tCsAGvA6sEbHIoKxowboUxjp2qGYg/e6AM6ckvNhT8kAJ9B9qpngKlmr3VmVBH1en+1tFw5NoZGdYSd42qB2zQtGSjV5APVBQU+UXJXw1yZ61Ur7li6Xee8WsHMac8WsNZiBspk7n/tVnicbV5gPZTxQaZnFiHiI/fQU+J7/PpxP+SD4vuJK0YxLo6Orikmwi0xss/uu+bdraNoESWstnJ/KJ3sWjrGVEa953/eP+D/E32pyWSvvHdZrmaNI2sjYEP3qqFRJrQqzi6BxGABAYdwQggPJQIDAQABAoIBAQCL+NybcKmgebMDKtI755gVZPGjYorqBiQ86UPKWMiGlHCBVPpMSo1ZLgHF7qH4UPFgOnlbZjDMBPF7J9FXWuj9Sbgp26ti5ualLX91QSxys4rHK8g6uNRuvxQyWPK+GkgACUfyamOil25wFP7uDPzPVosbeSKRTRa+yMMkGCTrECWwjjDSc0mqnjUUgfdpIUJZIsEc2aDR81e10PmcIwNaMF/D6WqGUe5ObM/635YGhqcxIMd1UYxmlMqdmuSicnxFPP1qLAX9SoCaE9CPo4OT/NCME3vqOK4d3JuA2X/7+x6M6EoaCSd7ntYN5QW+Kp2E9VBYRQ38u+2iRn7sWTfFAoGBAN/a/DZMrMkFKPp+AneOstO6KpZw/cJ0OWzsf+0Yi0HXbcaIj/FpBkScInXK+Kh0SJkSQg6NjjagywP+gsUhECtYrUqz8dXy81zGhfg3rNeeRFBreMojz7aQ2ZyHXibaCeo8KcgSqvgEKE3Xfeb903PpQO9v72ScI1DlJayH61brAoGBANqTtjQ+6G05LagTcsJxbon/CV4WrloXE8by1tuxFxguYMK/jtEGKBkk15XbxYy5lqddsKw7aB8g1dv1zTMkkwugPOTGZ+zGwWZUw6Oy94SRNEWs9UYQA0xBWtpgRe6uq4H6thYW+IvMt6n9ZhVv6ni26hHAAl7FPZOkj4tVJs4vAoGBANKb+iywKOQb6bj6syF+7TqMbaMK/YRkyt5zB8yvCd3RbGOceij70bzdVQKUCyyZ8u+pIOMGRWWaFEdWvfvvpoHRtYCSGhZbtKF12fd1kjVunwE2i/dKiBNQ5pwBNBDDlQ5+uiSVg6tCZhUOiFK6PqZQLxrWqllzGTrzzGUtn7ovAoGAVsjRTjswA7XxJ8vZA9UP46Cscnwk68Y/5v0iTAYrOkGnz4tJRDrijuEu6+Rfsnk5lOhBLpFDzSA3aWdV+xlpfPM5WkhgmQVtYpkDOKrlVfBlRcjfddsDxDIqxYv2GEen9yq5Q1oJg1BcGBVxg8901Esj8ro+9qvvwABVsie0CacCgYBlwvdn8SwxzqLo1evuDukgnC3+Y6554V7BIioZzNDYwVK2gAbOUZEc9zO34oOglq2vECaNhURqZv2NdSG1RESRnaBwIFhOLVacl5UJuxjrpzHXf98PF6/+pNTVbdgQKjT2UfWSOCijzsrPI3Vq8aCM+afpoulNyt0NCBXefXB6EA=='

t = '\n'.join(s[pos:pos+64] for pos in range(0, len(s), 64))

rsa_private_key = '-----BEGIN RSA PRIVATE KEY-----\n{}\n-----END RSA PRIVATE KEY-----\n'.format(t)
print(rsa_private_key)

'''
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAvyGk2G9FRvwxt2phl7ty5FPzQ7F/VsWh9V9LLdkLwgEHpyUz
r9NVA/Lv4tCsAGvA6sEbHIoKxowboUxjp2qGYg/e6AM6ckvNhT8kAJ9B9qpngKlm
r3VmVBH1en+1tFw5NoZGdYSd42qB2zQtGSjV5APVBQU+UXJXw1yZ61Ur7li6Xee8
WsHMac8WsNZiBspk7n/tVnicbV5gPZTxQaZnFiHiI/fQU+J7/PpxP+SD4vuJK0Yx
Lo6Orikmwi0xss/uu+bdraNoESWstnJ/KJ3sWjrGVEa953/eP+D/E32pyWSvvHdZ
rmaNI2sjYEP3qqFRJrQqzi6BxGABAYdwQggPJQIDAQABAoIBAQCL+NybcKmgebMD
KtI755gVZPGjYorqBiQ86UPKWMiGlHCBVPpMSo1ZLgHF7qH4UPFgOnlbZjDMBPF7
J9FXWuj9Sbgp26ti5ualLX91QSxys4rHK8g6uNRuvxQyWPK+GkgACUfyamOil25w
FP7uDPzPVosbeSKRTRa+yMMkGCTrECWwjjDSc0mqnjUUgfdpIUJZIsEc2aDR81e1
0PmcIwNaMF/D6WqGUe5ObM/635YGhqcxIMd1UYxmlMqdmuSicnxFPP1qLAX9SoCa
E9CPo4OT/NCME3vqOK4d3JuA2X/7+x6M6EoaCSd7ntYN5QW+Kp2E9VBYRQ38u+2i
Rn7sWTfFAoGBAN/a/DZMrMkFKPp+AneOstO6KpZw/cJ0OWzsf+0Yi0HXbcaIj/Fp
BkScInXK+Kh0SJkSQg6NjjagywP+gsUhECtYrUqz8dXy81zGhfg3rNeeRFBreMoj
z7aQ2ZyHXibaCeo8KcgSqvgEKE3Xfeb903PpQO9v72ScI1DlJayH61brAoGBANqT
tjQ+6G05LagTcsJxbon/CV4WrloXE8by1tuxFxguYMK/jtEGKBkk15XbxYy5lqdd
sKw7aB8g1dv1zTMkkwugPOTGZ+zGwWZUw6Oy94SRNEWs9UYQA0xBWtpgRe6uq4H6
thYW+IvMt6n9ZhVv6ni26hHAAl7FPZOkj4tVJs4vAoGBANKb+iywKOQb6bj6syF+
7TqMbaMK/YRkyt5zB8yvCd3RbGOceij70bzdVQKUCyyZ8u+pIOMGRWWaFEdWvfvv
poHRtYCSGhZbtKF12fd1kjVunwE2i/dKiBNQ5pwBNBDDlQ5+uiSVg6tCZhUOiFK6
PqZQLxrWqllzGTrzzGUtn7ovAoGAVsjRTjswA7XxJ8vZA9UP46Cscnwk68Y/5v0i
TAYrOkGnz4tJRDrijuEu6+Rfsnk5lOhBLpFDzSA3aWdV+xlpfPM5WkhgmQVtYpkD
OKrlVfBlRcjfddsDxDIqxYv2GEen9yq5Q1oJg1BcGBVxg8901Esj8ro+9qvvwABV
sie0CacCgYBlwvdn8SwxzqLo1evuDukgnC3+Y6554V7BIioZzNDYwVK2gAbOUZEc
9zO34oOglq2vECaNhURqZv2NdSG1RESRnaBwIFhOLVacl5UJuxjrpzHXf98PF6/+
pNTVbdgQKjT2UfWSOCijzsrPI3Vq8aCM+afpoulNyt0NCBXefXB6EA==
-----END RSA PRIVATE KEY-----
'''


参考:

https://www.cnblogs.com/centos-python/articles/16347621.html