`
Shuhui
  • 浏览: 5730 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

微信小程序解密encrypted获取用户unionid

阅读更多

微信的解析加密信息encrypted 中的坑.

1.需要注意得是微信端传入vi与encryptedData 的一致性 .spingboot的后台默认接收json的数据格式.传输值中可能"+"加号,后台接收的值,servlet自动转成" "空格,导致解析失败.希望后续开发者不要在这个问题上耽搁太久.

,我目前的做法是直接把接收值中的空格替换成加号,"+"

 

        encryptedData = encryptedData.replace(" ", "+");

        iv = iv.replace(" ", "+");

暂时没有发现问题.

 

更好的做法是直接把传输值转换成加密数据.后台再次解密可以避免.

 

	public static JSONObject getDecryptMsg(String encryptedData, String iv, String sessionKey) {

		byte[] dataByte = Base64.decode(encryptedData);

		byte[] keyByte = Base64.decode(sessionKey);

		byte[] ivByte = Base64.decode(iv);

		try {

			int base = 16;

			if (keyByte.length % base != 0) {

				int groups = keyByte.length / base + (keyByte.length % base != 0 ? 1 : 0);

				byte[] temp = new byte[groups * base];

				Arrays.fill(temp, (byte) 0);

				System.arraycopy(keyByte, 0, temp, 0, keyByte.length);

				keyByte = temp;

			}

			Security.addProvider(new BouncyCastleProvider());

			Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding", "BC");

			SecretKeySpec spec = new SecretKeySpec(keyByte, "AES");

			AlgorithmParameters parameters = AlgorithmParameters.getInstance("AES");

			parameters.init(new IvParameterSpec(ivByte));

			cipher.init(Cipher.DECRYPT_MODE, spec, parameters);

			byte[] resultByte = cipher.doFinal(dataByte);

			if (null != resultByte && resultByte.length > 0) {

				String result = new String(resultByte, "UTF-8");

				return JSONObject.parseObject(result);

			}

		} catch (Exception e) {

			e.printStackTrace();

		}

		return null;

	}

 

0
0
分享到:
评论

相关推荐

    微信小程序获取手机号码解密算法PHP版本

    以上就是关于微信小程序获取手机号码解密算法PHP版本的基本知识,这个过程涉及到微信小程序的授权机制、数据加密解密原理以及PHP的加密函数使用。理解并掌握这个过程对于开发微信小程序的服务器端功能至关重要。

    对微信小程序进行解密,python文件

    对微信小程序进行解密,python文件

    Java解密微信小程序手机号的方法

    Java解密微信小程序手机号的方法 本文主要介绍了Java解密微信小程序手机号的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 AES解密工具类 Java解密微信小程序手机号的方法主要通过创建AES解密工具类...

    微信小程序获取用户信息js包,WXBizDataCrypt.js下载

    当用户授权微信小程序获取个人信息时,微信服务器会向小程序后台发送一个带有加密数据的code,这个code是临时的,需要在短时间内换取access_token和session_key。access_token用于标识应用,session_key是用于对用户...

    微信小程序 AES ECB base64 加密解密

    在微信小程序开发中,为了保护用户敏感信息,如登录凭证、个人信息等,通常会采用加密技术。本篇将详细讲解微信小程序中使用AES(Advanced Encryption Standard)ECB(Electronic Codebook)模式进行Base64编码的...

    微信小程序用户信息encryptedData详解

    1. **获取解密所需信息**:首先,你需要通过调用微信的小程序接口,使用用户的授权码(code)换取`session_key`和`openid`。同时,接口会返回`encryptedData`和`iv`这两个用于解密的参数。 2. **解密算法**:解密...

    CryptoJS+JAVA+微信小程序

    在IT行业中,安全的数据传输是至关重要的,尤其是在涉及到用户敏感信息的应用中,如微信小程序。本文将详细探讨如何使用CryptoJS在微信小程序中实现AES数据加解密,并介绍JAVA端如何利用Hutool库进行相应的操作。这...

    微信小程序RSA公钥加密模块

    (去掉注释13.6kb)微信小程序RSA加密模块,用法请参考文件里面的注释。 //加载RSA模块 var RSA = require('rsa.js'); var rsa_res = new RSA.RSAKey(); //配置公钥证书 let public_n = ''; let public_e = ''; ...

    微信小程序AES加密ECB模式js库.7z

    在微信小程序的开发过程中,数据的安全传输和存储是至关重要的,尤其是在涉及用户隐私和个人信息时。为此,开发者经常需要使用加密技术来保护敏感数据。本资源提供的是一个专门针对微信小程序的AES(Advanced ...

    小程序 AES的ECB加密模式

    【小程序 AES的ECB加密模式】是微信小程序在与后台数据交互时,为了保障信息安全而采用的一种加密技术。AES(Advanced Encryption Standard),即高级加密标准,是一种广泛应用的块密码算法,以其高效和安全性著称。...

    微信小程序 MD5加密登录密码详解及实例代码

    在微信小程序中,由于其特殊的运行环境,不能直接使用像jQuery或Zepto这样的库来实现MD5加密,因此需要寻找其他方法。 MD5算法的基本流程包括四个步骤:初始化、字节序列化、迭代压缩和结果输出。在这个实例中,...

    php+uni-app AES加密解密.rar

    在IT行业中,加密和解密技术是保护数据安全的关键手段,尤其在Web开发领域,如PHP和移动应用开发,如uni-app。...在实际开发中,理解并正确使用这些技术对于保护用户数据和维护应用安全性至关重要。

    微信退款报文AES解密参考代码

    - 解密成功后,商户根据解密后的退款结果,进行业务逻辑处理,如更新订单状态、退款到用户账户等,并返回确认收到的应答给微信。 5. **安全注意事项**: - 商户秘钥应当严格保管,避免泄露,通常建议定期更换。 ...

    uniapp 前后端AES加密解密.rar

    总的来说,这个压缩包提供的解决方案可以帮助开发者在uniapp小程序中实现前后端AES加密解密,确保数据在传输过程中的安全性。这不仅适用于小程序,也可以应用于其他uniapp开发的H5、Android和iOS应用。通过合理使用...

    go-wechat-app:微信小程序SDK for Go,API调用,数据解密

    微信小程序SDK for Go 第一个可用版本,随心使用,注意安全 :grinning_face_with_smiling_eyes: 目前功能 数据解密 解密 wx.getUserInfo 解密 wx.getShareInfo 解密 wx.getWeRunData 接口调用 todo 使用方法 数据...

    前端小程序和后端java对接用的AESCBCPKCS7Padding加密解密代码和示例

    以上代码展示了在微信小程序前端和Java后端如何实现AES-CBC-PKCS7Padding的加解密,确保数据在传输过程中的安全。在实际项目中,密钥和初始化向量应妥善管理,避免暴露,通常通过安全的方式在服务器端生成并传递给...

    c# des加密解密小程序

    4. **解密操作**:同样,使用`CreateDecryptor()`方法获取解密变换流,然后使用`TransformFinalBlock()`将密文还原为明文。 在DESEncryptDecrypt小程序中,可能包含以下关键代码片段: ```csharp using System; ...

    文件夹加密小程序文件夹加密小程序

    文件夹加密小程序是一种用于保护个人或企业敏感数据的应用程序,它允许用户对特定的文件夹进行加密,确保只有授权的用户能够访问其中的内容。在信息化社会,数据安全日益重要,文件夹加密成为一种必要的安全措施,...

    异或算法加密、解密Delphi小程序代码..rar

    这个Delphi小程序可能包含了实现上述功能的完整代码,以及如何读取、写入文件和处理用户交互的细节。通过学习和理解这个代码,你可以更好地掌握异或算法在实际项目中的应用,同时也可以作为开发自己加密工具的基础。...

    PNG加密解密工具是什么?加密代码演示.docx

    # PNG加密解密工具 此工具可以加密和解密PNG图片,保护您的隐私。 ## 加密 1. 选择要加密的PNG图片。 2. 输入密码并确认。 3. 点击“加密”按钮。 4. 保存加密后的PNG图片。 ## 解密 1. 选择要解密的PNG图片。 ...

Global site tag (gtag.js) - Google Analytics