小程序
小游戏
企业微信
微信支付
扫描小程序码分享
根据这个帮助文档,https://open.work.weixin.qq.com/api/doc/90000/90135/94854
测试企业微信通讯录异步导出,获得导出结果,是一个二进制文件,不知道如何打开,
在线帮助文档也没写清楚,
5 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你好,这个url下载后是需要解密,用md5做校验,解密方法是 aes-256-cbc
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
这个文档写的稀巴烂,也没人维护
代码如下
CloseableHttpResponse response = null; HttpGet httpGet = new HttpGet(new_uri); byte[] result; response = client.execute(httpGet); response.getStatusLine(); HttpEntity responseEntity = response.getEntity(); result = EntityUtils.toByteArray(responseEntity); String ENCODING_AESKEY = "IJUiXNpvGbODwKEBSEsAeOAPAhkqHqNCF6g19t9wfg2"; // 获取 key byte[] key = decodeBase64(ENCODING_AESKEY + "="); // 设置解密模式为AES的CBC模式 nopadding 不填充 Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); // 获取 iv IvParameterSpec iv = new IvParameterSpec(Arrays.copyOfRange(key, 0, 16)); cipher.init(Cipher.DECRYPT_MODE, keySpec, iv); // 解密 body byte[] original = cipher.doFinal(result);
官方文档上要是有个列子就好了 折腾了老半天才好.有需求的小伙伴可以参考下
附上.Net 写法
private static string DecryptData(byte[] encryptedBytes, string encodingAesKey)
{
byte[] key = Convert.FromBase64String(encodingAesKey +"=");
using (Aes aesAlg = Aes.Create())
aesAlg.Key = key;// 从Base64字符串还原AES密钥
aesAlg.IV = key.Take(16).ToArray(); // 截取前16个字节作为IV;
aesAlg.Mode = CipherMode.CBC;
aesAlg.Padding = PaddingMode.None;
// 创建解密器
ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);
// 解密数据
byte[] decryptedBytes = decryptor.TransformFinalBlock(encryptedBytes, 0, encryptedBytes.Length);
// 将解密后的数据转换为字符串
string decryptedText = Encoding.UTF8.GetString(decryptedBytes);
return decryptedText;
}
有没有php 的解密例子?
我这边弄来弄去数据都是空的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
你好,这个url下载后是需要解密,用md5做校验,解密方法是 aes-256-cbc
这个文档写的稀巴烂,也没人维护
代码如下
CloseableHttpResponse response = null; HttpGet httpGet = new HttpGet(new_uri); byte[] result; response = client.execute(httpGet); response.getStatusLine(); HttpEntity responseEntity = response.getEntity(); result = EntityUtils.toByteArray(responseEntity); String ENCODING_AESKEY = "IJUiXNpvGbODwKEBSEsAeOAPAhkqHqNCF6g19t9wfg2"; // 获取 key byte[] key = decodeBase64(ENCODING_AESKEY + "="); // 设置解密模式为AES的CBC模式 nopadding 不填充 Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); // 获取 iv IvParameterSpec iv = new IvParameterSpec(Arrays.copyOfRange(key, 0, 16)); cipher.init(Cipher.DECRYPT_MODE, keySpec, iv); // 解密 body byte[] original = cipher.doFinal(result);
官方文档上要是有个列子就好了 折腾了老半天才好.有需求的小伙伴可以参考下
附上.Net 写法
private static string DecryptData(byte[] encryptedBytes, string encodingAesKey)
{
byte[] key = Convert.FromBase64String(encodingAesKey +"=");
using (Aes aesAlg = Aes.Create())
{
aesAlg.Key = key;// 从Base64字符串还原AES密钥
aesAlg.IV = key.Take(16).ToArray(); // 截取前16个字节作为IV;
aesAlg.Mode = CipherMode.CBC;
aesAlg.Padding = PaddingMode.None;
// 创建解密器
ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);
// 解密数据
byte[] decryptedBytes = decryptor.TransformFinalBlock(encryptedBytes, 0, encryptedBytes.Length);
// 将解密后的数据转换为字符串
string decryptedText = Encoding.UTF8.GetString(decryptedBytes);
return decryptedText;
}
}
有没有php 的解密例子?
我这边弄来弄去数据都是空的。