云商店
云商店
- 云商店介绍
-
接入指南
-
商品接入相关接口
- SaaS类商品接入指南 V2.0(新商品上架)
- SaaS类商品接入指南 V1.0(已下线)
- 联营License类授权码商品接入指南(2.0版本)
- 联营License类商品接入指南(已下线)
- 自动部署接入指南
- 联营License客户端软件对接指南
- 商品交易相关接口
-
商品接入相关接口
- 用户指南
-
商家指南
- 为什么要加入云商店
- 商家入驻
- 商品发布
- 商品交易
- 商家结算
- 店铺运营
- 政策与权益
- 中资出海
-
商家常见问题
- 商家入驻相关问题
- 联营计划相关问题
-
商品发布相关问题
- 如何在云商店发布商品
- 如何发布多SKU定价规格
- 商品发布申请提交后,审核需要多久
- 如何判断发布的商品对应云商店上的哪种商品接入类型
- 云商店商品上架的使用有效期
- 新商品发布时,“商品说明”中能否插入图片
- 为什么在商品发布页面没有发布联营商品按钮
- 如何创建SaaS按需规格和按需套餐包
- 如何补充商品交付模板
- 商品名称发布说明
- 商品logo、商品主图与视频、商品简介、商品说明发布说明
- 联营商品服务支持条款发布说明
- 通用商品服务协议发布说明
- 服务与支持、使用指南发布说明
- 软件著作权证书发布说明
- 通用商品规格发布说明
- 联营商品规格对照报价单填写说明
- 联营服务流发布说明
- 生产接口地址、安全漏洞扫描、关联应用发布说明
- 如何发布SaaS类商品试用规格
- 云商店镜像资产无法选择到已创建私人镜像的原因
- 商品管理相关问题
- 服务监管相关问题
- 结算相关问题
- 协议与规范
- 客户服务商指南
- 平台规范与通知
- 文档下载
- 通用参考
本文导读
展开导读
文档首页/
云商店/
接入指南/
商品接入相关接口/
SaaS类商品接入指南 V1.0(已下线)/
通用和自服务SaaS类商品接入指南 V1.0/
代码示例(Java)/
ISV Server解密手机号和邮箱
链接复制成功!
ISV Server解密手机号和邮箱
代码调用如下图所示。
/** * * 解密手机号码或邮箱 * @param key 秘钥 * @param str 密文 * @param encryptLength 加密长度 * @return 解密结果 */ public static String decryptMobilePhoneOrEMail(String key, String str, int encryptLength) { if(null != str && str.length() > 16) { String iv = str.substring(0, 16); String encryptStr = str.substring(16); String result = null; try { result = decryptAESCBCEncode(encryptStr, key, iv, encryptLength); } catch (InvalidKeyException | NoSuchAlgorithmException | NoSuchPaddingException | InvalidAlgorithmParameterException | IllegalBlockSizeException | BadPaddingException e) { //TODO:异常处理 } return result; } return null; }
/** * 解密AES CBC * @param content 原文 * @param key 秘钥 * @param iv 盐值 * @return 解密结果 * @throws BadPaddingException * @throws IllegalBlockSizeException * @throws InvalidAlgorithmParameterException * @throws NoSuchPaddingException * @throws NoSuchAlgorithmException * @throws InvalidKeyException */ public static String decryptAESCBCEncode(String content, String key, String iv, int encryptType) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { if (StringUtils.isEmpty(content) || StringUtils.isEmpty(key) || StringUtils.isEmpty(iv)) { return null; } return new String(decryptAESCBC(Base64.decodeBase64(content.getBytes()), key.getBytes(), iv.getBytes(),encryptType)); } public static byte[] decryptAESCBC(byte[] content, byte[] keyBytes, byte[] iv, int encryptType) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { KeyGenerator keyGenerator = KeyGenerator.getInstance("AES"); SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); secureRandom.setSeed(keyBytes); keyGenerator.init(encryptType, secureRandom); SecretKey key = keyGenerator.generateKey(); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(iv)); byte[] result = cipher.doFinal(content); return result; }
父主题: 代码示例(Java)