日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

查看pem证书的ASN数据结构的方法

發(fā)布時(shí)間:2025/3/15 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 查看pem证书的ASN数据结构的方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

搞過(guò)的同學(xué)應(yīng)該都弄過(guò)google 的keybox.xml,里面有g(shù)oogle 的attestition key證書內(nèi)容,類似如下:

<Key algorithm="ecdsa"><PrivateKey format="pem">-----BEGIN EC PRIVATE KEY----- MHcCAQEEIGy6AjEzbgGKmraHakjGX7Ld01MaK+d+SUv99GpUSosToAoGCCqGSM49 AwEHoUQDQgAENr+geskxIlYpIRCxZTbFTUI+Zv9B4KrGfOyNp8icyC46ZiCLtoZQ T6IIDzPElyJ6puG4nLaNX+/9raGBFDMnCA== -----END EC PRIVATE KEY----- </PrivateKey><CertificateChain><NumberOfCertificates>3</NumberOfCertificates><Certificate format="pem">-----BEGIN CERTIFICATE----- MIICLDCCAbKgAwIBAgIKGBmVCRR3EhkhKDAKBggqhkjOPQQDAjAbMRkwFwYDVQQF ExBiZTQwNjQ2NmJlYTM3ODJiMB4XDTE2MDUyNjE3MzQ1MloXDTI2MDUyNDE3MzQ1 MlowGzEZMBcGA1UEBRMQNmNmZGM4ZjM3ZDBjNDc1OTBZMBMGByqGSM49AgEGCCqG SM49AwEHA0IABDa/oHrJMSJWKSEQsWU2xU1CPmb/QeCqxnzsjafInMguOmYgi7aG UE+iCA8zxJcieqbhuJy2jV/v/a2hgRQzJwijgd0wgdowHQYDVR0OBBYEFPOca1nC LHi7kp/w+fE4pXD51769MB8GA1UdIwQYMBaAFKaz3r8xYJllfb5LA5tz0LBld0oB MAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMCQGA1UdHgQdMBugGTAXghVp bnZhbGlkO2VtYWlsOmludmFsaWQwVAYDVR0fBE0wSzBJoEegRYZDaHR0cHM6Ly9h bmRyb2lkLmdvb2dsZWFwaXMuY29tL2F0dGVzdGF0aW9uL2NybC8xODE5OTUwOTE0 NzcxMjE5MjEyODAKBggqhkjOPQQDAgNoADBlAjEAo6Fy2NE1Kx3Zozmw8zaFqDCx vOm+Z+6CXU8rSX2B8pWpdnR+T5efvLdCapmAoK0SAjBGwYT224mzmuG+uxN0ka3D R1Dc4tD+JlD2rlKbWMoZadPrZ65NpKzm6z/9shwd2Bk= -----END CERTIFICATE----- </Certificate>

但是有時(shí)候想看一下這個(gè)pem對(duì)應(yīng)的內(nèi)容是什么?
需要使用工具將這個(gè)證書內(nèi)容轉(zhuǎn)換成ASN描述內(nèi)容,類似如下:

那應(yīng)該具體如何操作呢?
步驟如下:
1、將pem的內(nèi)容復(fù)制一下;
2、打印https://lapo.it/asn1js/網(wǎng)址
3、將pem內(nèi)容復(fù)制進(jìn)去,點(diǎn)擊“decode”按鈕,就可以生成對(duì)應(yīng)的內(nèi)容了。

那如果拿到的數(shù)據(jù)是hex十六進(jìn)制的,那怎么辦?
也有辦法,可以先將hex轉(zhuǎn)換成二進(jìn)制文件,然后再?gòu)?fù)制到這個(gè)網(wǎng)頁(yè)。
實(shí)現(xiàn)的代碼如下:

#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <sys/time.h> #include <unistd.h> #include <stdint.h> #include <string.h>static bool _hex2bin(char* hex, uint32_t hex_size, uint8_t* bin, uint32_t bin_size) {if (hex_size % 2) {return false;} if (bin_size < hex_size / 2 || !bin) {return false;} uint32_t j = 0;uint8_t t = 0;uint8_t c = 0;for (uint32_t i = 0; i < hex_size; ++i) {if (hex[i] >= '0' && hex[i] <= '9') {t = hex[i] - '0';} else if (hex[i] >= 'a' && hex[i] <= 'f') {t = hex[i] - 'a' + 10; } else if (hex[i] >= 'A' && hex[i] <= 'F') {t = hex[i] - 'A' + 10; } else {return false;} if (i % 2 == 0) {c = t << 4;} else {c |= t;bin[j++] = c;c = 0;} } return true; }uint8_t __bin[2048] = {0}; char* __hex = ""; //把你要轉(zhuǎn)換的數(shù)據(jù)拷貝到這里面來(lái)int main() {FILE* fout = fopen("out.bin", "w+");size_t len = strlen(__hex);printf("read len %ld\n", len);_hex2bin(__hex, len, __bin, len / 2);fwrite(__bin, 1, len/2, fout);fclose(fout);return 0; }

轉(zhuǎn)換后,會(huì)生成out.bin文件,把這個(gè)out.bin拖到https://lapo.it/asn1js/網(wǎng)址中,也可以轉(zhuǎn)換ASN描述的內(nèi)容了。

總結(jié)

以上是生活随笔為你收集整理的查看pem证书的ASN数据结构的方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。