搞过的同学应该都弄过google 的keybox.xml,里面有google 的attestition key证书内容,类似如下:

    <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>

但是有时候想看一下这个pem对应的内容是什么?
需要使用工具将这个证书内容转换成ASN描述内容,类似如下:

那应该具体如何操作呢?
步骤如下:
1、将pem的内容复制一下;
2、打印https://lapo.it/asn1js/网址
3、将pem内容复制进去,点击“decode”按钮,就可以生成对应的内容了。

那如果拿到的数据是hex十六进制的,那怎么办?
也有办法,可以先将hex转换成二进制文件,然后再复制到这个网页。
实现的代码如下:

#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 = "";  //把你要转换的数据拷贝到这里面来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;
}

转换后,会生成out.bin文件,把这个out.bin拖到https://lapo.it/asn1js/网址中,也可以转换ASN描述的内容了。

查看pem证书的ASN数据结构的方法相关推荐

  1. IOS 生成pem证书方法

    具体步骤如下: 首先,需要一个pem的证书,该证书需要与开发时签名用的一致. 具体生成pem证书方法如下: 1. 登录到 iPhone Developer Connection Portal(http ...

  2. Android 手机设置 Charles 代理,pem 证书安装不上?

    「注意文章红字部分,100% 解决问题」 最近在家办公,需要远程链接内网调试,but 公司的 vpn 账号只能单设备登录,只好使用手机代理了. 本文使用的代理是 Charles,具体 Charles ...

  3. 可以考的python方面的证书-python有证书的加密解密实现方法

    本文实例讲述了python有证书的加密解密实现方法.分享给大家供大家参考.具体实现方法如下: 最近在做python的加解密工作,同时加完密的串能在php上能解出来,网上也找了一些靠谱的资料,刚好也有时 ...

  4. php公钥模数,php – 如何从公共指数和RSA模数生成DER / PEM证书?

    众所周知,公钥由公共指数和模数组成. 我的问题是: 如何从公共指数和RSA模数生成DER / PEM证书? 非常感谢你提前. 解决方法: 使用公共指数和模数,你可能希望做的最好的事情是得到这样的东西: ...

  5. 小米手机上安装https证书(例如pem证书,crt证书)详解

    小米手机上安装https证书(例如pem证书,crt证书)关键三步: 1.使用第三方浏览器下载.pem 格式的文件 (我使用的是QQ浏览器) 2.将这个文件放入小米的 DownLoad 文件夹下 (这 ...

  6. mysql查看用户名_Mysql创建数据表的方法介绍(附示例)

    本篇文章给大家带来的内容是关于Mysql创建数据表的方法介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 数据表是数据库最重要的组成部分之一,是其他对象的基础.如果我们的 ...

  7. 如何查看服务器证书过期时间,如何看ssl证书过期

    如何看 server端校验方法 (1) 使用写monitor定时创建ssl连接的方法进行校验.(一般不推荐这种方法) (2) 写脚本调用证书工具进行检查,使用工具检查有效期的命令如下: Openssl ...

  8. 如何查看 安卓证书 的签名

    如何查看 安卓证书 的签名 自有安卓证书的签名查看方法 1)通过命令查看 电脑上要装有Java 找见Java目录下的keytool.exe 打开运行,输入cmd,打开命令提示符,进入Java所在的盘 ...

  9. 查看IOS-app证书到期时间

    参照: iOS企业版证书到期 https://www.jianshu.com/p/44b0dc46ef37 如果不能十分确定每一个打出来的ipa的有效期(过期时间),而又需要关注它具体什么时候需要强制 ...

最新文章

  1. c语言double变量后面几个0,C语言double型变量的初始化到底是是0还是0.0?
  2. ASP.NET MVC 4 (九) 模型绑定
  3. C#使用DataContractJsonSerializer来进行JSON解析
  4. MAC电脑安装Python3下的Jupyter Notebook
  5. 排序算法 --- 快速排序
  6. dev-c 语言注释快捷键,devc 使用教程 注释
  7. python pyplot 宽高等比_python – 更改matplotlib中子图的宽高比
  8. 关于word导出pdf时更新域出错的问题
  9. 阿拉伯数字转中文数字
  10. t430服务器查看raid状态,dell t430 raid1教程
  11. 总线(Bus)-计算机硬件系统
  12. 功能测试————Siri
  13. h5 app开发 教程
  14. 软件工程项目:电梯调度
  15. 【学习资源】光学、物理类、电子学实验合集
  16. 3d Max人物动画学习笔记(二)蒙皮
  17. Android应用模拟返回键、home键
  18. ae中计算机打字预设,Typewriter Pro(AE电脑打字动画特效预设)
  19. 112.Android 简单的群发微信,群发文本和图片,一键群发
  20. H264—帧,片,参数集,NALU等概念

热门文章

  1. 计算机族应常喝的健康饮品
  2. Windows平台下的多线程编程
  3. 哈尔滨理工C语言程序设计精髓_计算机科学与信息工程学院C语言程序设计竞赛圆满完成!...
  4. 超强Mac数据恢复软件:Disk Drill Enterprise Mac
  5. java 类 加载 初始化_java类的加载与初始化
  6. 1.5 编程基础之循环控制 21 角谷猜想--方法二
  7. 第47课 称心如意的输入 《小学生C++趣味编程》
  8. php使用ftp远程上传文件类(解决主从文件同步问题的简单方法)
  9. 操作系统课设之简单 shell 命令行解释器的设计与实现
  10. mysql 连接 iOS_iOS连接mysql数据库及基本操作