Advertisement

Secure SSL encryption method

  • 5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:RAR


简介:
CC++, 利用OpenSSL库对Socket传输进行安全加密(RSA+AES) 1. 利用RSA安全传输AES生成密钥所需的Seed(32字节) 2. 利用AES_encryptAES_decrypt对Socket上面的业务数据进行AES加密解密 --- * 理论上只需要AES就能保证全部流程,但由于AES加密所需要的AES-KEY是一个结构 * 这个一个结构,如果通过网络进行传输,就需要对它进行网络编码,OpenSSL里面没有现成的API * 所以就引入RSA来完成首次安全的传输,保证Seed不会被窃听 * 同样,只使用RSA也能完成全部流程,但由于RSA的处理效率比AES低, * 所以在业务数据传输加密上还是使用AES --- 下面的代码包含了上述传输加密流程所需的所有步骤(OpenSSL部分) 在实际的Socket应用开发时,需要将这些步骤插入到ClientServer网络通信的特定阶段 --- 为能完成代码的编译和执行,需要先安装OpenSSL执行库及开发库 以Debian为例,需要安装openssl 和 libssl-dev 编译命令: g++ -o rsa-encrypt rsa-encrypt.cpp -lcrypto --- 所需的OpenSSL主要的API及功能描述 1. RSA_generate_key() 随机生成一个RSA密钥对,供RSA加密解密使用 2. i2d_RSAPublicKey() 将RSA密钥对里面的公钥提出到一个BUF,用于网络传输给对方 3. d2i_RSAPublicKey() 将从网络传过来的公钥信息生成一个加密使用的RSA(它里面只有公钥) 4. RSA_public_encrypt() 使用RSA的公钥对数据进行加密 5. RSA_private_decrypt() 使用RSA的私钥对数据进行加密 6. AES_set_encrypt_key() 根据Seed生成AES密钥对中的加密密钥 7. AES_set_decrypt_key() 根据Seed生成AES密钥对中的解密密钥 8. AES_encrypt() 使用AES加密密钥对数据进行加密 9. AES_decrypt() 使用AES解密密钥对数据进行解密 --- 一个典型的安全Socket的建立流程, 其实就是如何将Server随机Seed安全发给Client -- C: Client S:Server C: RSA_generate_key() --> RSAKey --> i2d_RSAPublicKey(RSAKey) --> RSAPublicKey C: Send(RSAPublicKey) TO Server S: Recv() --> RSAPublicKey --> d2i_RSAPublicKey(RSAPublicKey) --> RSAKey S: Rand() --> Seed --> RSA_public_encrypt(RSAKey, Seed) --> EncryptedSeed S: Send(EncryptedSeed) TO Client C: Recv() --> EncryptedSeed --> RSA_private_decrypt(RSAKey, EncryptedSeed) --> Seed --- 到此, Client和Server已经完成完成传输Seed的处理 --- 后面的流程是它们怎样使用这个Seed来进行业务数据的安全传输 C: AES_set_encrypt_key(Seed) --> AESEncryptKey C: AES_set_decrypt_key(Seed) --> AESDecryptKey S: AES_set_encrypt_key(Seed) --> AESEncryptKey S: AES_set_decrypt_key(Seed) --> AESDecryptKey --- Client传输数据给Server C: AES_encrypt(AESEncryptKey, Data) --> EncryptedData --> Send() --> Server S: Recv() --> EncryptedData --> AES_decrypt(AESDecryptKey, EncryptedData) --> Data --- Server传输数据给Client S: AES_encrypt(AESEncryptKey, Data) --> EncryptedData --> Send() --> Client C: Recv() --> EncryptedData --> AES_decrypt(AESDecryptKey, EncryptedData) --> Data ========================================================================================= *

全部评论 (0)

还没有任何评论哟~
客服
客服
  • dog是_break_point_in encryption
    优质
    该加密软件通过特定的狗文件破解写狗过程
  • Secure Audit Log System: 使用 SSL 和 C 构建的安全审计日志系统
    优质
    本安全审计日志系统采用SSL加密与C语言开发,旨在为数据记录提供强大的安全保障,有效防止未授权访问和数据篡改。 为了实施一个安全审计日志系统,并使用 OpenSSL 和 C 语言进行开发,在项目目标上我们将根据 Bruce Schneier 和 John Kelsey 在他们的文章《支持计算机取证的安全审计日志》中提到的协议来构建这个系统。该系统的假设前提是存在一台受信任的服务器,同时在不受信任的计算设备上建立安全的日志记录机制。 具体来说,日志文件将包含关于创建、添加条目以及关闭这些文件的信息,并且每个条目的内容都将经过加密处理以确保只有授权的受信服务器才能解码和读取它们。此外,我们还将提供一个“验证器”工具来与上述受信任的服务器建立安全连接并检查日志中的各项记录是否准确无误。 整个系统的设计、实现以及运行机制都严格遵循 Bruce Schneier 和 John Kelsey 在其论文中提出的方案。
  • Finite Element Method and Boundary Element Method - Hunter
    优质
    Finite Element Method and Boundary Element Method - Hunter是一本全面介绍有限元法和边界元法理论与应用的专业书籍,适用于工程分析与设计。 ### 有限元方法与边界元方法 #### 一、有限元基础函数 ##### 1.1 一维场表示 有限元方法(FEM)是一种数值解法,用于求解复杂的工程问题,特别是在结构分析和热传导等领域。在处理一个连续的一维函数时,我们通常采用一系列线性或高阶多项式基函数来近似该函数。 ##### 1.2 线性基函数 在线性近似中,每个节点定义了一个基函数,在其上取值为1,并且其他所有节点上的值为0。通过这种设置,我们可以用两个相邻节点的线性组合来表示两点之间的变化情况。例如,在一维空间中,如果两个节点间的距离是h,则可以使用以下公式:φ1(x) = (x2 - x)/h 和 φ2(x) = (x - x1)/h ,其中x1和x2分别是这两个节点的位置坐标。 ##### 1.3 基函数作为权重函数 基函数不仅用于表示场变量,也可以在弱形式的构建中用作加权函数。通过将微分方程转换为积分的形式,并利用这些基函数(即权重函数)进行加权处理,可以得到更稳定的数学模型。 ##### 1.4 二次基函数 随着问题复杂性的增加,需要使用更高阶的多项式来逼近未知场变量。例如,在曲率变化较大的情况下,采用二次或更高的多项式作为基函数能够提供更好的近似效果。 ##### 1.5 二维和三维元素 在处理更复杂的几何形状时(如弯曲面),我们需要考虑二维甚至三维的情况。此时,单元的选择会更加复杂,包括三角形、四边形等不同类型的多边形单元,并且每个单元内部的场变量表示依然通过基函数来完成。 ##### 1.6 高阶连续性 在某些应用中,为了提高精度和准确性,要求相邻单元之间不仅场变量本身要保持连续,其导数也要保持一致。这种高阶连续性的实现需要更复杂的数学处理方法。 ##### 1.7 三角形单元 三角形单元是二维有限元分析中最常用的元素之一。它具有三个节点,并且可以使用线性基函数来表示单元内部的场变量变化情况,从而适应各种复杂几何形状的要求。 ##### 1.8 曲线坐标系 对于处理弯曲或非规则表面的问题时,曲线坐标系统提供了更好的解决方案。在这种情况下,选择适当的曲率相关的基函数能够显著提高计算精度和效率。 #### 二、稳态热传导 ##### 2.1 一维稳态热传导 一维稳态热传导问题是一个经典的有限元分析案例。它涉及到温度分布随位置变化的描述,在这种条件下时间被视为常数不变量。首先需要建立一个微分方程,然后通过将其转换为弱形式来求解各节点上的温度值。 ##### 2.2 α-依赖源项 当热源的位置或者强度随着位置的变化而改变时(即α-依赖性),我们需要在有限元模型中引入相应的处理机制以适应这种变化情况,并调整方程中的相应参数。 ##### 2.3 伽辽金权函数回顾 在有限元方法的应用过程中,通过使用适当的基函数来最小化残差的方法被称为伽辽金法。这种方法不仅适用于稳态热传导问题,在其他类型的偏微分方程求解中也非常有用。 #### 三、边界元方法 ##### 3.1 引言 边界元方法(BEM)是一种数值技术,专注于解决具有明确边界的物理现象。相比有限元方法,它只需要在物体的表面上进行离散化处理,从而减少了计算资源的需求量。 ##### 3.2 目录克-德尔塔函数与基本解 目录克-德尔塔函数和基本解是边界元法中的关键概念之一。前者用于表示集中力或源项的影响;后者则是描述该影响下系统的响应情况。 ##### 3.3 二维边界元方法 在二维空间中,BEM通过定义物体边界的节点,并使用基函数来表达这些条件来进行计算工作。接着构造相应的积分方程以求解出各个未知量的值。 ##### 3.4 数值求解边界积分方程的方法 为了解决由边界元素法产生的线性代数问题,通常需要采用数值方法进行处理,包括直接和间接技术以及特定类型的数值积分方案(如高斯积分)等手段来提高精度与效率。 ##### 3.5 数值评价系数矩阵中的项 在BEM中求解过程中会涉及到大量关于边界条件的计算任务。这要求我们使用高效的算法来评估这些复杂的数学表达式,特别是对于那些难以直接解析求解的部分来说更是
  • Batch Encryption解密工具
    优质
    Batch Encryption解密工具是一款专为批量处理加密文件设计的安全软件,能够高效、便捷地帮助用户管理和保护重要数据。 目录包含软件作者提供的CrackMe文件。使用代码进行解密时,请运行以下命令:BatchDecryption.py -i .\CrackMe_Encrypted.bat -o CrackMe_Decrypted.bat 打开查看以获得KEY: 3D2089CA9C877C94EEC57E229FE30005。由于Python 32位和64位版本的环境变量不同,如果解密失败,请更换相应版本后重试。
  • Hillstone Secure Connect.rar
    优质
    Hillstone Secure Connect 是一款由Hillstone Networks开发的安全连接解决方案,旨在为企业提供安全、便捷的远程访问和网络互联服务。 hillstone secure connect客户端软件是一款用于连接Hillstone网络设备的工具软件。
  • Secure Shell (SSH)
    优质
    简介:Secure Shell(SSH)是一种加密网络协议,用于安全地远程登录计算机系统、执行命令及传输数据,确保通信过程中的隐私与完整性。 远程登录Linux服务器。
  • Symantec Encryption Desktop Win64 10.4.2 MP3.rar
    优质
    Symantec Encryption Desktop Win64 10.4.2 MP3 是一款由赛门铁克公司开发的加密软件,适用于Windows 64位系统。该版本包括第3个修订版补丁,提供全面的数据保护功能。 PGP加密软件用于实现电子邮件的安全传输。
  • Superpixel Watershed Method
    优质
    Superpixel Watershed Method是一种图像分割技术,它首先利用超像素算法对图像进行预处理,随后应用 watershed 算法以提高对象边界检测精度和效率。 分水岭超像素技术的相关内容包括代码实现及论文。其中一篇相关论文发表于IEEE ICIP2015会议上。