请自行安装openssl库

#include <iostream>
#include <openssl\ssl.h>
using namespace std;
#pragma comment(lib,"libssl.lib")
#pragma comment(lib,"libcrypto.lib")
int main(){unsigned char pub_key[25] = {};unsigned char sha_key[16] = {};//QQ的tk,不同版本可能会变,这里是8.9的unsigned char tk[49] = { 0x04, 0xBF, 0x47, 0xA1, 0xCF, 0x78, 0xA6, 0x29, 0x66, 0x8B,0x0B, 0xC3, 0x9F, 0x8E, 0x54, 0xC9, 0xCC, 0xF3, 0xB6, 0x38,0x4B, 0x08, 0xB8, 0xAE, 0xEC, 0x87, 0xDA, 0x9F, 0x30, 0x48,0x5E, 0xDF, 0xE7, 0x67, 0x96, 0x9D, 0xC1, 0xA3, 0xAF, 0x11,0x15, 0xFE, 0x0D, 0xCC, 0x8E, 0x0B, 0x17, 0xCA, 0xCF};EC_KEY* ec_key = EC_KEY_new_by_curve_name(NID_secp192k1);const EC_GROUP* ec_group = EC_KEY_get0_group(ec_key);EC_POINT* ec_point = EC_POINT_new(ec_group);if (EC_KEY_generate_key(ec_key) == 1){EC_POINT_point2oct(ec_group, EC_KEY_get0_public_key(ec_key), POINT_CONVERSION_COMPRESSED, pub_key, 25, 0);if (EC_POINT_oct2point(ec_group, ec_point, tk, 49, 0) == 1){ECDH_compute_key(sha_key, 16, ec_point, ec_key, 0);}}for (int i = 0; i < sizeof(pub_key) / sizeof(unsigned char); i++){printf("%X ",pub_key[i]);}printf("\n");for (int i = 0; i < sizeof(sha_key) / sizeof(unsigned char); i++){printf("%X ", sha_key[i]);}getchar();
}

PCQQ ECDH算法C++实现相关推荐

  1. ATECC508A芯片开发笔记(八):ECDH算法配置方法、执行过程及实现原理

    目录 AATECC508A芯片开发笔记(八):ECDH算法配置方法.过程原理及示例代码 1.ECDH介绍及原理 2.ECDH执行过程 3.508A某一slot执行Ecdh需要配置的参数 4.示例代码 ...

  2. ECDH算法与mbedTLS

    ECDH密钥协商算法基于椭圆曲线密码系统(ECC),使用较短的密钥长度可提供与RSA或DH算法同等的安全等级,密钥长度位160 ~ 256比特的椭圆曲线算法与密钥长度位1024 ~ 3072比特的非E ...

  3. ECDH 算法概述(CNG 示例)

    转自: https://docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2008/cc488016(v=vs ...

  4. java ecdh算法_椭圆曲线ECC ECDH原理 javacard实现

    椭圆曲线原理: 椭圆曲线的图像并不是椭圆形,椭圆曲线源自于求椭圆弧长的椭圆积分的反函数. 定义: 椭圆曲线可用下列方程来表示,其中a,b,c,d为系数. E: y2 =ax3 + bx2 +cx +d ...

  5. ECDH秘钥协商算法原理(ECDH Key Exchange)

    ECDH全称是椭圆曲线迪菲-赫尔曼秘钥交换(Elliptic Curve Diffie–Hellman key Exchange),主要是用来在一个不安全的通道中建立起安全的共有加密资料,一般来说交换 ...

  6. ECDH and ECDSA(ECC椭圆曲线算法3)

    这是ECC系列的第三篇. 专栏:https://blog.csdn.net/mrpre/category_6952288.html 在之前的文章中,我们看到了什么是椭圆曲线,并且我们为了做一些数学运算 ...

  7. 基于ECC算法的秘钥协商

    基于ECC算法的衍生算法 ECDH(ECC+DH) RSA ECDHE(ECC+DHE) ECDH密钥协商(ECC+DH) 椭圆曲线密码学是属于非对称密码学的,其私钥的计算公式如下: 私钥是一个随机数 ...

  8. 椭圆算法加密,java实现

    简介 椭圆加密算法(ECC)是一种公钥加密体制,最初由Koblitz和Miller两人于1985年提出,其数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性.公钥密码体制根据 ...

  9. openssl-key-exchange 基于ECDH (Elliptic-Curve Diffie–Hellman) 的密钥交换流程

    openssl-key-exchange 本文摘自我在GitHub的开源项目 https://github.com/zhoupeng6d/openssl-key-exchange 简介 该方案介绍一种 ...

最新文章

  1. PHP内核探索之变量(1)Zval
  2. wp7之换肤原理简单分析
  3. 淘宝精品案例JS、jQuery
  4. c语言归并排序代码详细注释,C语言实现排序算法之归并排序详解
  5. TCP/IP的基本介绍
  6. IP、MAC和端口号——网络通信中确认身份信息的三要素
  7. Java中sleep,wait,yield,join的区别
  8. Nginx静态资源优化配置之sendfile
  9. module.exports与exports,export与export default之间的关系和区别
  10. 【bzoj4399】魔法少女LJJ 并查集+权值线段树合并
  11. jwt token 太长_理解 JWT 鉴权的应用场景及使用建议
  12. -bash: locate: command not found
  13. 实验代码复现过程记录
  14. 15拆分成3个不同的自然数_素数大概有多少个?15岁的高斯翻过素数表之后给出了答案...
  15. vim 树形目录插件NERDTree安装
  16. vs2015c 语言包,有关Visual Studio 2015 中文语言包 无法下载
  17. 激光投影仪对比激光电视 成像原理和适用范围
  18. element-ui表格编辑
  19. mysql 联合主键 null_MySQL联合主键的索引使用
  20. Page migration

热门文章

  1. 你知道什么是通配符证书吗?
  2. lumina电源维修XLB-650-25-20-R-H激光氙灯电源维修
  3. vscode 编译so库,并且引用so库调试
  4. 使用F11一键还原的几点心得
  5. java验证Email地址
  6. swift UITextField 设置点击确定收回输入框
  7. 计算机组成原理十六位运算器实验报告,《计算机组成原理》实验报告——运算器...
  8. ABP-oracle多数据库配置
  9. 【ArcGIS微课1000例】0042:ArcGIS自带取色器工具的妙用
  10. 数理逻辑蕴含_数理逻辑(1)——命题逻辑的基本概念