背景
因业务需求,需要与第三方进行融合登录。第三方融合登录接口有关于验签的要求,将解密的数据按照规定的顺序进行MD5进行签名验证并与提供的MD5签名作为对比。其加密的明文是Json字符串,解密后还原后要按照URl参数的形式进行排列进行MD5签名。
规定
加密参数(注:加密参数名称均为小写字母,没有使用驼峰法命名)
名称类型默认值简介sourceidString必传来源标识targetidString必传目标标识usercodeString必传用户唯一标识usernameString用户姓名idcardString身份证号码phoneString手机号码ounameString部门名称timeString必传当前时间戳,精确到毫秒
签名数据采用以上面表格顺序以及以下格式进行字段拼接
sourceid=skyfinder&targetid=sky&...
4年前 (2020-09-08) 930℃ 0评论
6喜欢
构建了自己常用的基础镜像,就打算推送到Docker Hub上。首先使用docker login 进行登录,然后就使用docker push 执行镜像推送,最后返回错误信息如下:
denied: requested access to the resource is denied
如下图:
在网上找了下相关信息,大部分都是说认证、登录等信息,按照相关信息试一试也没有什么用。最后发现是镜像名称不符合Docker规范,从而导致了镜像推送被拒绝。
推送的镜像命名规范如下:
登录名/镜像名称:标签
例如:
skyfinder/microsoft-dotnet-2.1-aspnetcore-runtime-libgdiplus:latest
如果现有的镜像名称不符合规范,可以使用tag打一个标签,如下:
docker tag skyfin...
4年前 (2020-09-03) 1441℃ 0评论
0喜欢
背景
因某些需求,需要与合作单位进行相应的数据交互,而交互均使用了加密方式处理并用MD5作为签名,以便校验传输内容是否遭到篡改。
MD5
md5是一种信息摘要算法,它可以从一个字符串或一个文件中按照一定的规则生成一个特殊的字符串,并且一个文件所对应的MD5摘要是固定的,当文件内容变化后,其MD5值也会不一样,因此,在应用中经常使用MD5值来验证一段数据有没有被篡改。
.NET CORE 实现MD5
以下简单实现,支持返回大小写、32位以及16位MD5字符串。
public static class EncryptionMd5
{
/// <summary>
/// md5加密
/// </summary>
/// <param name="conten...
4年前 (2020-09-02) 3011℃ 0评论
10喜欢
背景
因业务需求,需要与其他平台实现融合登录,根据提供融合登录方的文档内容,对AES加密解密相关内容使用.NET CORE来进行一次实现。以下记录实现AES加解密后的内容,便以后备用。
AES
高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。严格地说,AES和Rijndael加密法并不完全一样(虽然在实际应用中二者可以互换),因为Rijndael加密法可以支持更大范围的区块和密钥长度:AES的区块长度固定为128 比特,密钥长度则可以是128、192或256比特;而Rijndael使用的密钥和区块长度可以是32位的整数倍,以128位为下限,256比特为上限。包括AES-ECB、AES-C...
4年前 (2020-09-02) 2321℃ 0评论
1喜欢
因业务需求,需要进行融合登录,根据提供融合登录方的文档内容,对AES加密解密相关内容使用.NET CORE来进行一次实现。使用.NET CORE完成后,根据文档提到的密文进行解密,很遗憾解密无法完成。最终根据提供的Java文件进行相关确认,发现文档中所表述内容与Java示例文件中出现诸多不一致的地方。最后经过咨询并确认了以Java示例文件中的内容为准,所以此处记录一下这个AES加密解密的方法。
import java.security.Key;
import java.util.Arrays;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
/**
* AES加密工具类
*
*/
public...
4年前 (2020-09-01) 1006℃ 0评论
2喜欢