zoukankan      html  css  js  c++  java
  • AES简单解密

    某app返回内容进行了加密处理

    其本地解密实现如下

        @NotNull
        public final String decrypt(@NotNull String str, @NotNull String str2) {
            Intrinsics.checkParameterIsNotNull(str, "input");
            Intrinsics.checkParameterIsNotNull(str2, "key");
            Cipher instance = Cipher.getInstance("AES/CBC/NoPadding");
            Object bytes = str2.getBytes(Charsets.UTF_8);
            Intrinsics.checkExpressionValueIsNotNull(bytes, "(this as java.lang.String).getBytes(charset)");
            SecretKeySpec secretKeySpec = new SecretKeySpec(bytes, "AES");
            Object bytes2 = str2.getBytes(Charsets.UTF_8);
            Intrinsics.checkExpressionValueIsNotNull(bytes2, "(this as java.lang.String).getBytes(charset)");
            instance.init(2, secretKeySpec, new IvParameterSpec(bytes2));
            Object doFinal = instance.doFinal(Base64.decode(str, 0));
            Intrinsics.checkExpressionValueIsNotNull(doFinal, "encrypt");
            return StringsKt.trim(new String(doFinal, Charsets.UTF_8), new char[]{'u0000'});
        }

    key值为一个写死的字符串

    参数有两个 str //加密后的字符串  str2 //解密需要的 key

    另偏移向量为 str2 utf8 的字节数组

    实现如下 

    function decrypt($str, $key)
    {
        if([string]::IsNullOrEmpty($str)){return $null}
        $toEncryptArray=[Convert]::FromBase64String($str)
        $ivArray=[Text.Encoding]::UTF8.GetBytes($key)
        $rm=[System.Security.Cryptography.RijndaelManaged]::new()
            $rm.Key=[Text.Encoding]::UTF8.GetBytes($key)
            $rm.IV=$ivArray
            $rm.Mode=[System.Security.Cryptography.CipherMode]::CBC
            $rm.Padding=[System.Security.Cryptography.PaddingMode]::None
        $cTransform=$rm.CreateDecryptor()
        $resultArray=$cTransform.TransformFinalBlock($toEncryptArray,0,$toEncryptArray.length)
        return [Text.Encoding]::UTF8.GetString($resultArray).Trim()
    }
  • 相关阅读:
    oracle中job定时调用存储过程的实例
    oracle recyclebin详解(闪回删除的表)
    启动和禁用约束及删除违反约束的记录
    儒轩画的老鼠
    SQLServer2005重建索引
    [转]你真的了解 console 吗
    [转]C# 理解lock
    [转]大话 程序猿 眼里的 高并发
    莆田系医院名单
    .Net WEB 程序员需要掌握的技能
  • 原文地址:https://www.cnblogs.com/feiyucha/p/12516302.html
Copyright © 2011-2022 走看看