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

dedecms怎么把一个网站的文章导出导到另一个站里seo搜索引擎优化怎么做

dedecms怎么把一个网站的文章导出导到另一个站里,seo搜索引擎优化怎么做,做网站需要什么服务器配置,设计制作实践活动100字深入浅出 Android AES 加密解密:从理论到实战 在现代移动应用中,数据安全是不可忽视的一环。无论是用户隐私保护,还是敏感信息的存储与传输,加密技术都扮演着重要角色。本文将以 AES(Advanced Encryption Standard&am…

深入浅出 Android AES 加密解密:从理论到实战

在现代移动应用中,数据安全是不可忽视的一环。无论是用户隐私保护,还是敏感信息的存储与传输,加密技术都扮演着重要角色。本文将以 AES(Advanced Encryption Standard)加密算法 为核心,带你深入了解其在 Android 中的应用,并通过代码示例讲解如何实现 AES-128 加密解密


一、为什么选择 AES?

AES 是目前最广泛使用的对称加密算法之一,具有以下优势:

  1. 安全性高:AES 支持 128、192 和 256 位密钥长度。本文聚焦于 128 位加密,它在效率和安全性之间取得了平衡。
  2. 性能优秀:AES 是一种高效的块加密算法,适合移动设备的资源约束环境。
  3. 广泛支持:在 Android 平台上,AES 加密已内置支持,开发者无需额外引入第三方库。

二、AES-128 加密原理

AES 使用对称加密方式,意味着加密和解密使用同一密钥。其核心原理如下:

  • 输入数据(明文):需要加密的原始信息。
  • 密钥:用于加密和解密的固定长度字符串(16 字节对应 128 位)。
  • 加密模式:AES 提供多种工作模式,如 ECB、CBC、CFB 等。本文采用 AES/CBC/PKCS5Padding,即:
    • CBC(Cipher Block Chaining):一种分组加密模式,增强数据安全性。
    • PKCS5Padding:填充方式,用于保证明文块长度符合加密算法要求。

三、Android 实现 AES 加密解密

以下代码实现了 AES-128 的加密和解密,并以实际例子展示了完整过程。

1. 代码核心实现

package com.exap.service.moive.aeslib;import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;public class Aes128Util {private static final String AES = "AES";private static final String AES_CBC_PKCS5PADDING = "AES/CBC/PKCS5Padding";/*** AES128位加密字符串* * @param plaintext 待加密的字符串* @param key       密钥(16个字符的字符串)* @return 加密后的Base64编码字符串* @throws Exception 加密异常*/public static String encrypt(String plaintext, String key) throws Exception {SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), AES);Cipher cipher = Cipher.getInstance(AES_CBC_PKCS5PADDING);IvParameterSpec ivSpec = new IvParameterSpec(key.getBytes(StandardCharsets.UTF_8));cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivSpec);byte[] encryptedBytes = cipher.doFinal(plaintext.getBytes(StandardCharsets.UTF_8));return Base64.getEncoder().encodeToString(encryptedBytes);}/*** AES128位解密字符串* * @param encryptedText Base64编码的加密字符串* @param key           密钥(16个字符的字符串)* @return 解密后的字符串* @throws Exception 解密异常*/public static String decrypt(String encryptedText, String key) throws Exception {SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), AES);Cipher cipher = Cipher.getInstance(AES_CBC_PKCS5PADDING);IvParameterSpec ivSpec = new IvParameterSpec(key.getBytes(StandardCharsets.UTF_8));cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivSpec);byte[] encryptedBytes = Base64.getDecoder().decode(encryptedText);byte[] decryptedBytes = cipher.doFinal(encryptedBytes);return new String(decryptedBytes, StandardCharsets.UTF_8);}public static void mainTest() {String plaintext = "ec74d721051c:1732856541:test";String key = "aaaaaaaa:1732856"; // 16个字符的密钥try {System.out.println("[Aes128Util]原始字符串: " + plaintext);String encryptedText = encrypt(plaintext, key);System.out.println("[Aes128Util]加密后的字符串: " + encryptedText);String decryptedText = decrypt(encryptedText, key);System.out.println("[Aes128Util]解密后的字符串: " + decryptedText);} catch (Exception e) {e.printStackTrace();}}
}

2. 核心逻辑解析

(1) 加密

  • 密钥生成:通过 SecretKeySpec 使用 UTF-8 编码生成密钥。
  • 初始化向量(IV):与密钥一致,用于加密时初始化 Cipher。
  • Base64 编码:将加密后的二进制数据转为易于传输的字符串。

(2) 解密

  • Base64 解码:将加密字符串还原为字节数组。
  • 解密过程:通过 Cipher 反向操作,将密文解密为原文。

四、运行结果分析

假设明文为:ec74d721051c:1732856541:test,密钥为:aaaaaaaa:1732856。运行后输出如下:

注意事项

  1. 密钥长度:必须是 16 字节(128 位)。
  2. 密钥保密:避免密钥泄露,可结合 Android KeyStore 加强安全性。
  3. 编码一致性:确保加密和解密使用相同的编码格式(如 UTF-8)。

五、AES 的实际应用场景

  1. 敏感数据存储:如密码、支付信息。
  2. 数据传输保护:在客户端和服务端之间加密数据传输。
  3. 文件加密:保护本地存储的用户数据。

六、总结与建议

本文通过实际代码讲解了 AES-128 加密解密的实现,展示了其强大与高效的特点。在 Android 开发中,AES 是一种可靠的加密选择,但要注意:

  • 密钥的安全管理至关重要。
  • 加密模式和填充方式需根据具体场景选择。
  • 定期审查代码,避免潜在的安全漏洞。

你是否在项目中使用过 AES 加密?欢迎留言分享你的经验!

http://www.hrbkazy.com/news/24676.html

相关文章:

  • 网站怎样做有利于seo无需下载直接进入的网站的代码
  • 有没有专门做线下活动的网站seo网站优化推广教程
  • theappbuilder外贸网站建设优化
  • 网商网站怎么做东莞营销网站建设优化
  • 网站被恶意刷流量优化排名工具
  • 某企业网站网页设计模板今日国内重大新闻事件
  • 网站建设时间表怎样做网站卖自己的产品
  • 买了域名怎么做网站百度联盟项目看广告挣钱
  • 网站设计与制作合同百度问答app下载
  • 广东网站建设开发做一个个人网站
  • 网站官网seo中文全称是什么
  • 免费网站建设品牌专业放心关键词优化参考价格
  • 做一些购物网站火星时代教育培训机构怎么样
  • flash网站模板中心开封网站seo
  • 做球服的网站有哪些网站设计是做什么的
  • 驾校网站建设方案厦门seo优化多少钱
  • 挂机宝 可以做网站站长之家seo工具
  • 学做效果图的网站全网媒体发布平台
  • 百度做网站怎么样怎么制作网页广告
  • 电子商务网站流程设计seo怎么刷关键词排名
  • 提供企业网站建设定制数字营销策略有哪些
  • 多语种网站建设开发域名注册平台哪个好
  • 建网站卖虚拟资源需要怎么做代做百度首页排名
  • 门户网站的特点和优势东莞seo技术
  • 网站设计策划书模板seo职业
  • 高价做单网站网页制作与设计
  • 学校网站做几级等保推广之家
  • 索菲亚全屋定制官方网站游戏推广员好做吗
  • 进博会上海2022手机优化大师官方版
  • 外国一些做环保袋的网站百度seo是什么意思呢