当前位置: 首页 > news >正文

搭建网站论坛wap网站乱码

搭建网站论坛,wap网站乱码,洛可可,建设银行网站维修图片一、AES算法 AES是一种对称加密算法#xff0c;算法秘钥长度可为128位(16字节)、192位(24字节)、256位(32字节)。加密模式分为ECB、CBC、CTR等#xff0c;其中ECB模式最简单够用。现给出ECB模式下C和Java的实现#xff0c;并且可以相互加解密验证。 二、AES_ECB实现DEMO …一、AES算法 AES是一种对称加密算法算法秘钥长度可为128位(16字节)、192位(24字节)、256位(32字节)。加密模式分为ECB、CBC、CTR等其中ECB模式最简单够用。现给出ECB模式下C和Java的实现并且可以相互加解密验证。 二、AES_ECB实现DEMO 2.1 C版本 #include string #include vector #include openssl/evp.hEVP_CIPHER *getAlgPoint(const int keyLen){EVP_CIPHER *pAlg nullptr;if (keyLen 16) {pAlg (EVP_CIPHER *)EVP_aes_128_ecb();}else if (keyLen 16 keyLen 24) {pAlg (EVP_CIPHER *)EVP_aes_192_ecb();}else{pAlg (EVP_CIPHER *)EVP_aes_256_ecb();}return pAlg; }std::vectoruint8_t ecbEncrypt(const std::string key, const std::string str){if (key.empty() || str.empty()) {return {};}int encLen 0;int outlen 0;EVP_CIPHER_CTX* ctx EVP_CIPHER_CTX_new();std::vectoruint8_t encData(((str.size()/16)1) * 16);//加密后的长度是16的整数倍,明文刚好16整数倍则密文是明文长度16字节EVP_CipherInit_ex(ctx, getAlgPoint(key.size()), nullptr, (uint8_t*)key.data(), nullptr, 1);EVP_CipherUpdate(ctx, encData.data(), outlen, (const uint8_t *)str.c_str(), (int)str.size());encLen outlen;EVP_CipherFinal_ex(ctx, encData.data() outlen, outlen);encLen outlen;EVP_CIPHER_CTX_free(ctx);encData.resize(encLen);return encData; }std::string ecbDecrypt(const std::string key, const std::vectoruint8_t str){if (key.empty() || str.empty()) {return ;}int decLen 0;int outlen 0;EVP_CIPHER_CTX* ctx EVP_CIPHER_CTX_new();std::vectoruint8_t decData(str.size());EVP_CipherInit_ex(ctx, getAlgPoint(key.size()), nullptr, (uint8_t*)key.data(), nullptr, 0);EVP_CipherUpdate(ctx, decData.data(), outlen, str.data(), (int)str.size());decLen outlen;EVP_CipherFinal(ctx, decData.data() outlen, outlen);decLen outlen;EVP_CIPHER_CTX_free(ctx);decData.resize(decLen);return std::string((char*)decData.data(), decData.size()); }int main(void){std::string tKey32 12345678901234567890123456789012;std::string tSrcMsg Hello World!;auto byteEnc ecbEncrypt(tKey32, tSrcMsg);auto b64Enc B64::encode(byteEnc.data(), byteEnc.size());//转base64打印加密后的内容, b64转换函数自己实现std::coutb64Enc: b64Enc std::endl;auto strDec ecbDecrypt(tKey32, byteEnc);std::coutdecMsg: strDecstd::endl;return 0;}demo运行结果 b64Enc:wC/nIjhaktigwT5VfVYXKA decMsg:Hello World!2.2 Java版本 AESUtil.java import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import java.nio.charset.StandardCharsets; import java.util.Base64;public class AESUtil {private static final String ALGORITHM AES;private static final String TRANSFORMATION AES/ECB/PKCS5Padding;public static String encrypt(String plainText, String key) throws Exception{SecretKeySpec secretKey new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), ALGORITHM);Cipher cipher Cipher.getInstance(TRANSFORMATION);cipher.init(Cipher.ENCRYPT_MODE, secretKey);byte[] eBytes cipher.doFinal(plainText.getBytes(StandardCharsets.UTF_8));return Base64.getEncoder().encodeToString(eBytes);}public static String decrypt(String encryptedText, String key) throws Exception{SecretKeySpec secretKey new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), ALGORITHM);Cipher cipher Cipher.getInstance(TRANSFORMATION);cipher.init(Cipher.DECRYPT_MODE, secretKey);byte[] dBytes cipher.doFinal(Base64.getDecoder().decode(encryptedText));return new String(dBytes, StandardCharsets.UTF_8);} }Main.java import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import java.nio.charset.StandardCharsets; import java.security.NoSuchAlgorithmException;public class Main {public static void main(String[] args) throws Exception {String strkey 12345678901234567890123456789012;String str Hello World!;String eStr AESUtil.encrypt(str, strkey);System.out.println(aes256 eStr: eStr);String dStr AESUtil.decrypt(eStr, strkey);System.out.println(aes256 dStr: dStr);} }demo运行结果 aes256 eStr:wC/nIjhaktigwT5VfVYXKA aes256 dStr:Hello World!C与Java的运行结果一致如果测试128、192位秘钥只用修改main函数中的秘钥长度其他部分不用改动。
http://www.hkea.cn/news/14365407/

相关文章:

  • 锦州网站建设动态wordpress加载很慢
  • app开发cms网站开发网站公告建设方案
  • 网站还能赚钱吗.tel域名不可以做网站域名吗
  • 电子商务网站推广论文没有服务器如何做网站
  • 一键生成作文的网站页游网站如何做推广
  • 亚马逊是做什么的seo模拟点击算法
  • 海西州建设局网站库尔勒市建设路街道办网站
  • 网站开发与服务器匹配北京建设教育协会官方网站
  • 织梦 旅游网站模板正规app软件开发费用
  • 昆明哪些做网站建设的公司做淘宝优惠劵网站服务器配置
  • 聚美优品网站建设情况怎么做监控网站
  • 做网站开发有前途吗展台展览
  • 网站建设需要的框架结构微信管理助手
  • 基于php技术的小型企业网站开发怎么在网站后面做链接
  • 网站的层次搜一搜排名点击软件
  • 网站信息化建设什么意思新版wordpress谷歌字体
  • 校园文化建设网站素材百度开户推广
  • 网站续费做网站时如何上传图片
  • 网站云推广邹带芽在成武建设局网站
  • 网站建设加盟代理苏州建网站皆去苏州聚尚网络
  • 快乐建站网软件公司都是帮别人做网站么
  • php手机网站制作域名注册好如何网站建设
  • 营销型网站建设的优缺点企业展厅设计公司100%正品保障
  • 用商城系统做教育网站wordpress 主题 修改
  • 怎么给网站做外链万网创始人
  • 崇信县门户网站数据分析师考试科目
  • 百度免费做网站广州免费公司注册
  • 只做移动端的网站宁波建工
  • 网站开发前端规范石嘴山网站定制开发建设
  • 手机进入网站自动识别查看网站外链代码