当前位置: 首页 > news >正文

网站模板安装好后wordpress界面英文

网站模板安装好后,wordpress界面英文,顺义做网站,网页制作和网站制作有什么区别文章目录 一、openssl中随机数函数**OpenSSL 随机数函数概览**1. **核心随机数函数** **常用函数详解**1. RAND_bytes2. RAND_priv_bytes3. RAND_seed 和 RAND_add4. RAND_status **随机数生成器的熵池****常见用例****注意事项** 二、使用哈希算法生成随机的密钥 一、openssl中… 文章目录 一、openssl中随机数函数**OpenSSL 随机数函数概览**1. **核心随机数函数** **常用函数详解**1. RAND_bytes2. RAND_priv_bytes3. RAND_seed 和 RAND_add4. RAND_status **随机数生成器的熵池****常见用例****注意事项** 二、使用哈希算法生成随机的密钥 一、openssl中随机数函数 OpenSSL 提供了一套功能强大的随机数生成函数用于生成高质量的伪随机数。随机数在密码学中至关重要广泛用于密钥生成、盐值生成、初始化向量 (IV) 等安全操作。 OpenSSL 随机数函数概览 1. 核心随机数函数 函数名称描述RAND_bytes生成高质量的伪随机字节。RAND_priv_bytes生成高质量伪随机字节推荐用于对安全性要求更高的密钥生成。RAND_pseudo_bytes生成伪随机字节不保证是加密级别安全已被弃用。RAND_seed手动为伪随机数生成器添加种子值。RAND_add添加额外的熵种子数据到伪随机数生成器的池中。RAND_status检查随机数生成器是否被正确初始化。RAND_poll自动收集熵以初始化随机数生成器由内部调用。 常用函数详解 1. RAND_bytes 作用生成高质量的加密级别伪随机字节。 函数原型 int RAND_bytes(unsigned char *buf, int num);buf指向用于存储随机字节的缓冲区。num要生成的随机字节数。返回值 成功返回 1。如果随机数生成器未正确初始化返回 0。 示例 unsigned char random_bytes[16]; if (RAND_bytes(random_bytes, sizeof(random_bytes)) 1) {printf(生成的随机数);for (int i 0; i sizeof(random_bytes); i) {printf(%02x, random_bytes[i]);}printf(\n); } else {fprintf(stderr, 随机数生成失败\n); }2. RAND_priv_bytes 作用与 RAND_bytes 类似但专为高安全性应用设计如密钥生成。可能在实现中增加额外的保护。函数原型int RAND_priv_bytes(unsigned char *buf, int num);使用方法与 RAND_bytes 一致。 3. RAND_seed 和 RAND_add 作用为随机数生成器添加种子值或熵增强其随机性。 OpenSSL 的随机数生成器依赖熵池通常会自动初始化但可以通过这些函数手动添加种子数据。 函数原型 void RAND_seed(const void *buf, int num); void RAND_add(const void *buf, int num, double entropy);buf种子数据。num种子数据的字节数。entropy种子中估计的熵单位是比特范围 0 到 8*num。 示例 unsigned char seed_data[] {0x12, 0x34, 0x56, 0x78}; RAND_seed(seed_data, sizeof(seed_data));4. RAND_status 作用检查随机数生成器是否被正确初始化。 函数原型 int RAND_status(void);返回值 如果熵池已初始化且可用随机性足够返回 1。否则返回 0。 示例 if (RAND_status() 1) {printf(随机数生成器已初始化\n); } else {printf(随机数生成器未初始化\n); }随机数生成器的熵池 OpenSSL 的随机数生成器使用熵池作为随机性的来源依赖于系统提供的随机性如 /dev/random 或 /dev/urandom。在大多数情况下OpenSSL 会自动处理熵池的初始化但开发者可以通过 RAND_seed 或 RAND_add 提供额外的种子数据。 常见用例 生成随机密钥 unsigned char key[32]; // 256 位密钥 if (RAND_bytes(key, sizeof(key)) 1) {printf(密钥生成成功\n); }生成随机初始化向量 (IV) unsigned char iv[16]; // 128 位 IV if (RAND_bytes(iv, sizeof(iv)) 1) {printf(IV 生成成功\n); }增强随机数生成器熵 unsigned char extra_entropy[] {0xde, 0xad, 0xbe, 0xef}; RAND_add(extra_entropy, sizeof(extra_entropy), 4.0); // 添加 4 比特熵注意事项 使用 RAND_bytes 或 RAND_priv_bytes 推荐使用这两个函数生成随机数因为它们提供加密级别的安全性。不建议使用 RAND_pseudo_bytes因为它已被弃用。 熵的重要性 高质量的熵是随机数生成的核心。如果熵不足生成的随机数可能会被预测降低安全性。 平台依赖 OpenSSL 的随机数生成器在不同平台上依赖系统的熵源例如 /dev/urandom 或 Windows 的 CryptGenRandom。 OpenSSL 的随机数生成函数设计灵活满足了从简单随机需求到高安全性应用的各种场景。如果需要更高安全性的随机数生成推荐使用 RAND_priv_bytes。 二、使用哈希算法生成随机的密钥 #include stdio.h #include stdlib.h #include string.h #include openssl/rand.h #include openssl/evp.h#define SEED_LENGTH 32 // 随机种子长度32 字节 256 位 #define KEY_LENGTH 32 // 密钥长度32 字节 256 位// 使用随机种子和哈希算法生成密钥 void generate_hashed_key(unsigned char *key, size_t key_length) {unsigned char seed[SEED_LENGTH]; // 随机种子// 生成随机种子if (!RAND_bytes(seed, sizeof(seed))) {fprintf(stderr, 随机种子生成失败\n);exit(EXIT_FAILURE);}// 打印随机种子调试用printf(随机种子: );for (size_t i 0; i sizeof(seed); i) {printf(%02x, seed[i]);}printf(\n);// 使用 SHA-256 哈希函数对种子进行散列EVP_MD_CTX *mdctx EVP_MD_CTX_new(); // 创建哈希上下文if (!mdctx) {fprintf(stderr, 创建哈希上下文失败\n);exit(EXIT_FAILURE);}// 初始化哈希计算使用 SHA-256if (EVP_DigestInit_ex(mdctx, EVP_sha256(), NULL) ! 1) {fprintf(stderr, 哈希初始化失败\n);EVP_MD_CTX_free(mdctx);exit(EXIT_FAILURE);}// 提供数据进行哈希计算if (EVP_DigestUpdate(mdctx, seed, sizeof(seed)) ! 1) {fprintf(stderr, 哈希更新失败\n);EVP_MD_CTX_free(mdctx);exit(EXIT_FAILURE);}// 获取哈希结果unsigned char hash[EVP_MAX_MD_SIZE];unsigned int hash_len;if (EVP_DigestFinal_ex(mdctx, hash, hash_len) ! 1) {fprintf(stderr, 哈希计算失败\n);EVP_MD_CTX_free(mdctx);exit(EXIT_FAILURE);}// 释放哈希上下文EVP_MD_CTX_free(mdctx);// 取哈希结果的前 key_length 字节作为密钥if (key_length hash_len) {fprintf(stderr, 密钥长度超出哈希值长度\n);exit(EXIT_FAILURE);}memcpy(key, hash, key_length);// 打印生成的密钥调试用printf(生成的密钥: );for (size_t i 0; i key_length; i) {printf(%02x, key[i]);}printf(\n); }int main() {unsigned char key[KEY_LENGTH]; // 存储生成的密钥// 调用密钥生成函数generate_hashed_key(key, KEY_LENGTH);return 0; } 运行两次的结果 这里可以看到每次运行后生成的密钥都是不一样的这样就保证了密钥的不一致性。
http://www.hkea.cn/news/14478139/

相关文章:

  • 招聘网站制作公司自己制作简易网页
  • 深圳有没有什么网站网站域名详解
  • h5可以做网站吗图书馆网站建设情况
  • 网站建设检查整改情况报告做代账的网站
  • 营口门户网站建设常德网站开发服务
  • 一个做问卷调查的网站好县网站建设运维情况自查报告
  • 网站建设毕业设计任务书企业网站建设咨询
  • 高端网站建设968江西公共资源交易网
  • 谷歌云做网站wordpress博客功能
  • 网站免费建站app杭州网络运营公司排名
  • 手机版网站制作模板咸宁网站建设网络公司
  • 旅游门户网站有哪些现在电商做的设计用的什么网站
  • 长沙网站推广合作做的怎样 英文网站
  • 邯郸网站开发公司在线建设房屋设计网站
  • 个人网站名称怎么取容易备案网站制作可能出现的问题
  • 河南省级住房城乡建设主管部门网站电子商务网站推广策略主要内容
  • 天津滨海新区小程序网站建设优秀设计案例
  • 网站主体负责人不是法人公司网站开发需求文档
  • 小程序开发哪家好关键词排名优化流程
  • 网站添加站长统计代码营销管理系统
  • 咨询北京国互网网站建设优化推广seo
  • 广州公司网站centos wordpress 空白
  • 移动端网站如何建设新赣州房产网
  • 百度商桥代码怎么加到网站上免费空间和域名
  • 网站建设虚线的代码增城网站建设
  • 民兵信息化网站建设企业展厅设计公司虎
  • 商丘网站建设推广公司地址wordpress安装卡住了
  • 网站建设常用模板下载dede网站地图栏目如何上传文件
  • 泸州网站制作微信引流获客软件
  • 南通做网站的花云快速申请免费个人网站