草庐IT

iOS-AES加解密各模式(ECB、CBC、CFB、OFB)的实现

前言最近和服务器同学对接口进行数据加解密时用到了AES加密。原本以为AES就一种加密形式,对接过程中才学习到AES不同模式、不同填充方式下,结果都不相同。因此去学习了一下AES加密的基本概念、实现原理,以及各种模式下的区别与实现。一、概念AES加密是对称加密的一种,全称是AdvancedEncryptionStandard(高级加密标准)。常用于网络传输中的数据加解密。这是一个AES在线加密工具。通过网站上的内容可以可以看出,加解密除了需要秘钥(Key)之外,AES还有多种模式,不同的模式加密的方式和结果都不相同。同时还有秘钥长度、初始向量、填充方式等参数,结果也是不尽相同。下面简单介绍一下A

MYSQL解决“plugin caching_sha2_password could not be loaded”

目录        1.登录mysql        2.查看用户的密码规则,及对应host         3.修改加密规则及密码(注意:下面代码的%是对应host中的内容)概述“plugincaching_sha2_passwordcouldnotbeloaded”,是无法加载插件缓存sha2密码, 在MySQL8.0中,caching_sha2_password是默认的身份验证插件,而不是mysql_native_password.使用mysql5可以正常连接,但是mysql8却无法连接,所以应该是sqlyog版本与mysql版本不匹配造成的。本文通过修改mysql密码策略解决;还有一种

大文件 MD5 SHA 校验时间优化之路

最近研发apk校验服务,很多游戏安装包两三个G,如果整个拿去校验,耗时基本二十多秒,这还仅仅是校验的时间,如果加上下载的时间,等待时间太长了网上很多方案尝试了一下,不太行1、fastmd5一个第三方库,csdn有人用过说可以提升40%的速度,然后我去试了一下,本来9秒可以完成的校验,变成了2分多钟,我真是口吐莲花2、把MD5替换成SHA算法提升不明显,哪怕从30秒缩短到20几秒,依然接受不了所以只能寻求其它方案了分片校验法很多上传下载大文件,会采用分片的方法去做,这样就可以开启多个任务对同一个文件进行操作,速度提升好几倍如法炮制,先写个demo尝试一下,看看是否可行先把文件进行分片,找个几百M

openssl之EVP实现哈希(md5,sha256,sm3)

目录一、环境说明二、功能说明三、EVP接口说明四、使用实例4.1MD5算法实现实例。4.2sha256算法实现实例。4.3sm3算法实现实例。五、源码地址一、环境说明操作系统:linux(debian)开发工具:Qtcreator4.8.2Qt版本:5.11.3.45-1openssl版本:openssl-3.1.0二、功能说明1、使用openssl的EVP接口开发对数据进行hash。算法包括:md5、sha256、sm32、使用openssl的EVP接口开发对文件进行hash。算法包括:md5、sha256、sm3三、EVP接口说明使用EVP的接口有以下几个:EVP_MD_CTX_new,E

MAC电脑查看SHA256方式

背景现在很多网站下载大文件时,以往通过查看文件大小来确定是否下载正确,但是很多情况下,文件下载后大小差不多,但是很多时候却时候出现无法安装的问题,有可能还是下载的文件出现错误,导致文件无法正常使用,所以规范的网站都提供MD5或SHA256的方式来对下载的文件进行检验(前提是大文件,小文件没有必要),以防止因下载后文件错误一直无法发现。(如下图1,下载文件出现hash码)操作方法本人经常使用MAC电脑,之前通过MD5文件直接命令运行就可算出文件检验码,现在需要计算sha256和MD5有一点区别,命令方法参照如下:使用shasum验证SHA256校验和shasum命令在所有现代Mac上都可用,可用

swift - 在 Swift 中使用 SHA512 哈希字符串

有谁知道如何在swift中重现PHP哈希方法hash('SHA512',$value,true)?我尝试在这段代码中使用CommonCryptoC库:extensionString{funcdigest(length:Int32,gen:(data:UnsafePointer,len:CC_LONG,md:UnsafeMutablePointer)->UnsafeMutablePointer)->String{varcStr=[UInt8](self.utf8)varresult=[UInt8](count:Int(length),repeatedValue:0)gen(data:&c

Postman轻松签名,让SHA256withRSA保驾护航!

 postman接口签名教程:https://www.bilibili.com/video/BV1r14y1A7MQ/?目录:导读前言获取pmlib引入依赖bundle.js,有以下两种方式:使用Pre-requestScript对请求进行加签(具体加签字段请看自己项目)结语前言在接口测试中,我们经常需要对请求进行签名,以保证数据的安全性。而SHA256withRSA是一种较为常见的签名算法,它可以使用私钥对数据进行签名,使用公钥进行验签。但是,实现该算法签名可能会涉及到一些繁琐的操作,给我们的工作带来不小的困扰。今天,我要向大家介绍一个神器——Postman,它可以轻松完成SHA256wit

java - 如何让 Ruby 为 SHA256 生成的 HMAC 是安全的,可以匹配 Java?

我有一个运行一些Java代码的tomcat服务器,允许用户使用APIkey进行身份验证。该请求使用通过SHA256创建的HMAC。我有一个用于发出请求的Ruby客户端,由于我是加密新手,所以很难让它生成匹配的HMAC。我试过不使其URL安全,但匹配。所以我真的很想知道如何让Ruby客户端与URL安全版本相匹配(因为我无法更改Java代码)。它只是在末尾有一个额外的=字符。在此先感谢您的帮助。对于Ruby,我使用1.9.3,对于Java,我使用6u31以及来自apache的commons-codec-1.6.jar库。代码ruby:require"openssl"require"base

linux 密码文件 /etc/shadow,SHA512 破解

小贴士哈希(又称为散列算法)不是加密,不是编码;哈希是不可逆的,加密可逆;编码解码不需要密钥,加解密需要密钥常见的编码&哈希&加解密算法如下编码:base64Hex编码Huffman编码哈希:md5SHA-1SHA-128SHA-256SHA-512SM3加密:​-对称加密(加解密密钥一样):DESAESSM4​-非对称加密(加解密密钥不一样):RSADSASM21.shadow文件解析文件的格式为:{用户名}:{加密后的口令密码}:{口令最后修改时间距原点(1970-1-1)的天数}:{口令最小修改间隔(防止修改口令,如果时限未到,将恢复至旧口令):{口令最大修改间隔}:{口令失效前的警告天

Java 的 MessageDigest SHA1 算法返回与 php 的 SHA1 函数不同的结果

我有一个包含用户名和密码的SQL表。密码使用MessageDigest的digest()方法进行编码。如果我使用MessageDigest的digest()方法对密码(比方说“abcdef12”)进行编码,然后将其转换为十六进制值,则字符串与使用PHP的SHA1方法进行相同操作时的字符串不同。不过,我希望这些值完全相同。用于对密码进行编码的代码:MessageDigestmd=MessageDigest.getInstance("SHA-1");byte[]passbyte;passbyte="abcdef12".getBytes("UTF-8");passbyte=md.digest