首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从angular 8加密时,解密文本开头的垃圾值(AES 128位)

在 Angular 8 中使用 AES 加密和解密时,如果您在解密文本时遇到开头的垃圾值,通常是由于以下几个原因导致的:

  1. 编码问题:加密和解密时使用的编码不一致。
  2. 密钥或初始化向量(IV)不匹配:加密和解密时使用的密钥或 IV 不一致。
  3. 数据格式问题:加密后的数据可能需要进行适当的格式化(如 Base64 编码)。

以下是一个使用 CryptoJS 库进行 AES 加密和解密的示例,确保您在加密和解密时遵循相同的步骤。

安装 CryptoJS

首先,确保您已经安装了 CryptoJS:

代码语言:javascript
复制
npm install crypto-js

加密和解密示例

以下是一个简单的示例,展示如何在 Angular 中使用 AES 进行加密和解密:

代码语言:javascript
复制
import * as CryptoJS from 'crypto-js';

const secretKey = 'your-secret-key'; // 确保密钥长度为16字节(128位)
const iv = CryptoJS.enc.Utf8.parse('1234567890123456'); // 16字节的IV

// 加密函数
function encrypt(text: string): string {
  const encrypted = CryptoJS.AES.encrypt(text, CryptoJS.enc.Utf8.parse(secretKey), {
    iv: iv,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
  });
  return encrypted.toString(); // 返回 Base64 编码的字符串
}

// 解密函数
function decrypt(ciphertext: string): string {
  const decrypted = CryptoJS.AES.decrypt(ciphertext, CryptoJS.enc.Utf8.parse(secretKey), {
    iv: iv,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
  });
  return decrypted.toString(CryptoJS.enc.Utf8); // 返回解密后的字符串
}

// 示例
const originalText = 'Hello, World!';
const encryptedText = encrypt(originalText);
console.log('Encrypted:', encryptedText);

const decryptedText = decrypt(encryptedText);
console.log('Decrypted:', decryptedText);

注意事项

  1. 密钥长度:确保您的密钥长度为 16 字节(128 位),如果使用不同的密钥长度(如 32 字节用于 AES-256),请相应调整。
  2. IV(初始化向量):IV 应该是 16 字节长,并且在加密和解密时必须相同。IV 的选择可以是随机的,但在解密时必须使用相同的 IV。
  3. 编码:确保在加密和解密时使用相同的编码格式。通常,您可以使用 Base64 编码来处理加密后的字符串。
  4. 数据格式:如果您在加密后将数据存储在数据库或传输中,确保在解密之前正确处理数据格式。

解决垃圾值问题

如果您在解密时仍然遇到垃圾值,您可以尝试以下步骤:

  • 确保加密和解密使用相同的密钥和 IV。
  • 确保加密后的字符串在传输或存储时没有被修改。
  • 检查加密和解密时的编码设置是否一致。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

AES加密解密

一、AES加密/解密在线工具文档 1.1、AES加密/解密算法介绍 AES加密/解密算法是一种可逆对称加密算法,这类算法在加密解密使用相同密钥,或是使用两个可以简单地相互推算密钥,一般用于服务端对服务端之间对数据进行加密...二、AES加密/解密在线工具使用须知 2.1、AES工作模式 AES常见工作模式为:ECB,CBC,OFB,CFB,CFB8,CTR,GCM,除了ECB无须设置初始化向量IV而不安全之外,其它AES...解密专用。...AES标准规定区块长度为固定128Bit,对应字节长度为16位,这明显和PKCS5标准规定使用得固定8位不符,虽然有些框架特殊处理后可以通用PKCS5,但是长远和兼容性考虑,推荐PKCS7。...16位随机,然后和加密文本一起返给解密端即可。

8.2K00

网络安全&密码学—python中各种加密算法

单向加密(不可逆加密) 定义:通过散列算法将明文生成散列,散列是长度固定数据,与明文长度无关,且无法散列还原出原文。 特点:常用于数字签名、消息认证、密码存储等场景,不需要密钥。...; 比较两个文件是否相同,如下载资源,网站提供MD5可用于检测文件完整性,确保文件未被篡改。...(data.encode()) #将iv加到加密密钥开头 ciptext =iv + cip print(ciptext) #解密需要 key和iv 生成AES对象,取前16位是iv mydecrypt...常见算法包括RSA(应用广泛)、ECC(适用于资源有限场景)、DSA(适用于数字签名)。 单向加密(不可逆加密) 通过散列算法将明文生成固定长度散列,无法散列还原原文。...二、Python中应用 Base64编码 将二进制数据转换为ASCII字符串,常用于文本数据编码和解码。 MD5和SHA-1加密 用于生成数据散列,常用于密码存储、文件完整性验证等场景。

33010
  • Java中加密与安全,你了解多少

    :URL编码英文字母保持不变,空格编码为"+",一个中文经过UTF-8编码后,通常是以%开头16进制编码。...总结:URL编码是编码算法,不是加密算法;URL编码目的是把任意文本数据编码为%前缀表示文本,编码后文本仅包含AZ,az,0~9,-_.*,%,便于浏览器和服务器处理。   ...-25 -2 112 16 -80 } }   MD5用途:可以用来验证文件完整性,比如我们在MySQL网站下载mysql,mysql网站会给出每一个下载文件MD5,...加密算法 对称加密算法   对称加密算法加密解密使用同一个密钥,例如WinRAR,我们在对文件进行压缩,可以设一个密码,再解压,我们需要使用 同一个密码才能进行解压,winRAR就是使用对称加密算法...我们以AES加密为例,当我们要加密明文,我们需要使用一个随机生成Key作为密钥进行加解密,最后我们问题就是如何传递密钥?

    18210

    Python实现各种加密,接口加解密不再难

    DES, AES 非对称加密 也叫公钥加密,指数据加密解密使用不同密钥--密钥对儿 身份验证 DSA,RSA 单向加密 指只能加密数据,而不能解密数据 数据完整性 MD5,SHA系列算法 3...在设置解码采用字符编码,需要与编码采用字符编码一致。使用decode()方法,同样不会修改原字符串。...所有的数据都能被编码为并只用65个字符就能表示文本文件( 65字符:A~Z a~z 0~9 + / = )。 2 编码原理 1.将所有字符转化为ASCII码。...2 用途 加密注册用户密码。 网站用户上传图片 / 文件后,将MD5作为文件名。(MD5可以保证唯一性) key-value数据库中使用MD5作为key。 比较两个文件是否相同。...) cip = mycipher.encrypt(data.encode()) #将iv加到加密密钥开头 ciptext =iv + cip print(ciptext) #解密需要 key和iv

    6.7K20

    Wannacry分析

    CSP获取RSA_AES提供者句柄,导入RSA 私钥句柄,这是用于解密dll   KEY BLOB(篇幅过长,仅显示部分) 读取被加密dll文件信息,加密文件头部含有经2048RSA加密AES密钥得到...256字节密文 解密256字节密文得到16字节明文(AES密钥)再用AES密钥解密文件得到dll 注:这时可以内存中dump出dll文件(我方式是直接OD内存中复制16进制,粘贴到010ed...⑧线程三 检测新加磁盘,加密,并写入垃圾数据 ⑨线程四 在前置条件成立情况下(初始不成立),创建进程 !WannaDecryptor!....9轮变换 S盒变换 8.对于小文件AES密钥加密,可能会用另外RSA公钥 如果是用另外公钥,将文件路径写入f.wry,待后面解密器演示 Ⅳ.加密流程分析 返回到分析Most_Important_Encrypt...启动解密器,两次全盘写入大量垃圾数据覆盖并删除。

    66510

    Python与常见加密方式

    ,其中主要有三个要解决问题: 保密性(Confidentiality):信息在传输不被泄露 完整性(Integrity):信息在传输不被篡改 有效性(Availability):信息使用者是合法...容易计算:原数据计算出MD5很容易。 抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到MD5都有很大区别。 定长输出:任意长度数据,算出MD5长度都是固定。 2....其中Key为8个字节共64位,是DES算法工作密钥;Data为8个字节64位,是要被加密或被解密数据;Mode为DES工作方式,有两种:加密解密。...16倍数 # 将iv(密钥向量)加到加密密文开头,一起传输 ciphertext = iv + mycipher.encrypt(data.encode()) # 解密的话要用key和iv生成新...RSA就是他们三人姓氏开头字母拼在一起组成

    2K21

    Python实现aes加密解密多种方法解析

    引子:    在windows中python3使用 pycryptodemo 模块实现Aes加密解密Aes加密有多种方式,自己可以上网了解下。...AES是每16位一加密,并且保证key和vi都是16位。废话不多说直接上代码。...: 返回补全后bytes文本 ''' bytes_num_to_pad = AES.block_size - (len(b) % AES.block_size) # python3...base64解码 其实在步骤4 就已经完成了aes加密,我所在公司加密比较复杂 ,需要可以直接返回步骤4 :param text: :return: '''...2 因为传入数据和传回数据不是定长,所以加密时候要先判断是否是16位倍数,如果不够那么就补全。       3 问题是对端拿到数据后怎么知道哪里截取。

    3.3K10

    Python crypto模块实现RSA和AES加密解密

    Python crypto 是用于RSA加密解密AES加密解密。 一、RSA和AES简介 RSA加密算法是一种非对称加密算法。...RSA就是他们三人姓氏开头字母拼在一起组成。 非对称加密算法也就是加密解密用不同密钥,使用一对秘钥对来进行加密解密,使用公钥来加密信息,然后使用私钥来解密。...AES是高级加密标准(Advanced Encryption Standard)缩写,AES 是最常见对称加密算法。 对称加密算法也就是加密解密用相同密钥,同一个秘钥即用来加密,也用来解密。...加密,使用 RSA importKey() 方法对(文件中读取)公钥字符串进行处理,处理成可用加密公钥。...解密,使用 RSA importKey() 方法对(文件中读取)私钥字符串进行处理,处理成可用解密私钥。

    9.5K40

    保护数据库信息,如何用Go语言+对称密钥做数据加密

    一、数据写入 1、读取输入信息(明文) 2、将明文加密为密文 3、将密文写入到数据库中 二、数据读取 1、数据库中读取密文 2、将密文解密为明文 3、发送明文 三、加密算法 对称密钥非常适合该任务应用场景...2、与非对称加密相比,对称加密速度更快,其带来额外速度在数据交互服务总是受欢迎。 3、每个数据字段中文本可能很大。对称加密加密大数据具有更好性能。...加密示例 kingsman ==> sLR9ctALjY0rtAi8IvosScCtBE21gyMOBl3xHzi52Hbo+H3O 四、示例 我们将以金融服务提供商注册模块为例,展示如何对数据进行简单加密保存和解密读取...然后将加密函数输出密文再输入到解密函数中,预期输出是等于明文字符串类型。...,同样方法也可以用于多个加密

    1.1K10

    常见加密方式和Python实现

    特点 压缩性:任意长度数据,算出MD5长度都是固定。 容易计算:原数据计算出MD5很容易。 抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到MD5都有很大区别。...其实16位长度,是32位md5。是将32位md5去掉前八位,去掉后八位得到。 ---- 5....其中Key为7个字节共56位,是DES算法工作密钥;Data为8个字节64位,是要被加密或被解密数据;Mode为DES工作方式,有两种:加密解密。...2006年,高级加密标准已然成为对称密钥加密中最流行算法之一。 AES在软件及硬件上都能快速地加解密,相对来说较易于实作,且只需要很少存储器。...# 将iv(密钥向量)加到加密密文开头,一起传输 ciphertext = iv + mycipher.encrypt(data.encode()) # 解密的话要用key和iv生成新AES对象

    2.3K11

    讲讲网络模块中加解密那点儿事--AES+BASE64提问理论代码

    那么,为什么还会有 16 位 MD5 ?其实也就是嫌 32 位数据太长了,所以去掉开头 8 位,末尾 8 位,截取中间 16 位来作为 MD5 输出。...目前大部分 app 所使用数据都是基于 UTF-8 格式编码吧。 AES 属于对称加密算法,对称意思是说,加密方和解密方用是同一串密钥。...加解密流程.png 上图就是 app 端发数据给服务端一个加解密、编解码过程。...需要注意是,因为 AES解密输入和输出都是二进制串信息,因此,在发送需先将明文通过 UTF-8 解码成二进制串,然后进行加密,再对这串二进制密文通过 BASE64 编码成密文串发送给接收方。...c++ string、UTF8相互转换方法 C++使用AES+Base64算法对文本进行加密 我最开始就是拿第二篇来用,然后才发现他所采用模式是:AES(16位密钥 + CBC + PKCS7Padding

    94430

    NerbianRAT样本分析报告

    函数之前执行,并且同一个包可以定义多个init函数,编译编译器会自动更名,这里可以看到main包中一共有两个init初始化函数 其中main_init_0使用了硬编码AesGCM加密模式密钥解密了很多需要使用到字符串...加密Buff为0x100 然后拼接了0x14C大小缓冲区 接下来使用了AesCBC模式加密,使用补全码0x4填充了4字节到0x150大小 使用了硬编码32字节Aes密钥进行加密 使用硬编码...AesCBC密钥加密后数据 将随机生成0x10大小数据写入AesCBC加密缓冲区头部 再次拼接将8563写入缓冲区头部 函数main_P6EwC8SB是对auth_post、data_post...==" // 加密数据前70个字节为垃圾数据,垃圾数据后32个字节为AesCBC加密密钥 aesCBCKey := allcryptDataBase64[70 : 70+32] // 需要解密数据为...{ // 解密第二层加密 // 硬编码AesCBCKey gaesCBCKeyBase64 := "F+h/WB8d+NYSnWX9UM6z3WxOHCIwd819TFldpsPfkrI=" /

    1K20

    你不知道前后端分离之交互(2)

    上一篇文章前后端分离之交互(1)我们讲到了如何使用JQuery发起ajax请求,后端接口获取前端需要数据。JQuery封装好ajax请求确实很好用,对比原生ajax使用简直就是鸿沟差距。...接下来登录逻辑如下: 1.接收前端传参,使用相同签名算法生成签名sign校验sign是否一致 2.签名校验成功,使用AES解密前端加密密码原文,再使用MD5加密密码。...3.进行数据库校验判断账号密码是否一致,给前端返回登录结果 首先调用封装好方法进行签名: ? 然后进行解密password: ? 解密成功则调取数据库查询账号及密码是否匹配: ?...接下来我们回到前端项目,开头说过了,JQueryajax确实挺方便,但是我们不能为了发起ajax请求而把整个JQuery引入项目当中,这是极度不合理操作。...然后将axios改写成vue原型属性 ? 前端对password进行AES加密: ? 然后对参数进行签名: ? 然后发起post请求刚才我们实现后端接口 ?

    1.1K40

    MySQL 8.0.30 数据加密有哪些变化?

    KDF MySQL具有SQL级别的加密功能,社区版MySQL提供了AES_DECRYPT(),AES_ENCRYPT()函数用于数据加密解密,函数使用AES(Advanced Encryption...8.0.30开始,MySQL支持使用KDF,函数根据“key_str”中传递信息和在其他参数中提供salt(盐)或附加信息创建一个密码学上强密钥。...派生密钥用于加密解密数据,它保留在MySQL 服务器实例中,用户无法访问。KDF提供了更好安全性,比在使用函数指定自己预生成密钥或通过简单方法派生密钥更好。...通过这些函数,企业应用可以进行如下操作: 使用公钥非对称加密实施额外数据保护 创建公钥和私钥以及数字签名 执行非对称加密解密 使用加密散列进行数字签名以及数据验证和确认 在 MySQL 8.0.30...下面举例介绍企业版加密部分功能,示例内容包括: 创建私钥/公钥对 使用私钥加密数据,使用公钥解密 字符串生成摘要 将摘要与密钥对一起使用 创建私钥/公钥对: -- 设置加密算法 MySQL localhost

    1.9K30

    PHP OpenSSL扩展 – 对称加密

    在 CBC 模式加密算法中,明文会被分成若干个组,以组为单位加密。每个组加密过程,依赖他前一个组数据:需要跟前一组数据进行异或操作后生成本组密文。那么最开头那个组又要依赖谁呢?...-ECB'); // 0 比如 AES-256-CBC 需要16位 IV、 BC-CBC 需要 8 IV、而AES-128-ECB 不需要 IV,所以返回了 0。...第 8 ~ 9 行 是加密解密。分别使用了 openssl_encrypt() 和 openssl_decrypt()。...第一个参数是输入,对 openssl_encrypt() 来说是明文串,对 openssl_decrypt() 来说是密文串 第二个参数是指定加密 / 解密 算法 第三个参数是加密 / 解密需要用到密码...,是个字符串 第四个参数额外选项,没有特殊需要可以保持默认:0, 第五个参数是 IV 这两个函数除了第一个参数不同,其余参数都要保证相同才能顺利解密

    1.9K20

    手敲代码实现对称加密

    手敲代码实现对称加密对称加密算法是最常见加密技术使用相同密钥进行加密解密效率很高常见对称加密算法DES 是一种早期对称加密算法DES使用56位密钥对数据进行加密解密安全性相对较低因为已经存在了破解...DES方法3DES 对DES进行了改进使用了三个56位密钥对数据进行加密解密虽然3DES比DES更安全但仍然存在被破解风险AES 是目前最常用对称加密算法之一使用128位、192位或256位密钥对它安全性非常高目前还没有被成功破解...- 模式 ECB * @param text 需要解密文本内容 * @param key 解密密钥 key * */ public static String...- 自定义加密模式 * @param text 需要加密文本内容 * @param key 加密密钥 key * @param iv 初始化向量 * @param...- 自定义加密模式 * @param text 需要解密文本内容 * @param key 解密密钥 key * @param iv 初始化向量 * @param

    22430

    Go加密算法总结

    前言 加密解密在实际开发中应用比较广泛,常用加解密分为:“对称式”、“非对称式”和”数字签名“。 对称式:对称加密(也叫私钥加密)指加密解密使用相同密钥加密算法。...RSA就是他们三人姓氏开头字母拼在一起组成。 rsa加密算法实现原理 学过算法朋友都知道,计算机中算法其实就是数学运算。所以,再讲解RSA加密算法之前,有必要了解一下一些必备数学知识。...假如甲想给乙传递一个署名消息的话,那么她可以为她消息计算一个散列(Message digest),然后用她密钥(private key)加密这个散列并将这个“署名”加在消息后面。...这个消息只有用她公钥才能被解密。乙获得这个消息后可以用甲公钥解密这个散列,然后将这个数据与他自己为这个消息计算散列相比较。...可以查看:PKCS系列简介 该包中函数名称,可以看到有两对加解密函数。

    1.6K40

    Python3 加密解密技术详解

    示例步骤如下: 将密钥变量设置为 8 个字符(DES 加密使用密钥长度为 8 个字节) 创建一个函数pad,来给一个字符串末尾填充空格,直到它长度是 8 倍数 创建一个 DES 实例、需要加密文本...、经过填充处理文本 尝试着对未经填充处理文本进行加密,显示ValueError错误 过填充处理文本进行加密,得到加密字符串 2.DES解密示例 ?...例中使用混合加密方法,即 PKCS#1 OAEP,也就是最优非对称加密填充 创建 AES 加密,然后加密数据,得到加密文本和消息认证码 将随机数、消息认证码和加密文本写入文件 这里随机数通常是真随机或伪随机数...对于 AES 加密,其密钥长度最少是 16 个字节。 3.解密示例 ? 以二进制模式读取加密文件 导入私钥。...注意,导入私钥,需要提供密码 文件中读取加密会话密钥、 16 字节随机数、16 字节消息认证码和其他加密数据 解密出会话密钥,重新创建 AES 密钥 解密出数据 接下来就是cryptography

    3.4K50

    前端攻城狮都要懂加密算法之总结,一篇文章教你搞懂加密

    ,我们只需要会用就好啦,这里我在推荐一篇理解AES加密解密使用方法,加深大家对 AES 算法理解~  具体实现: 这里我以  Vue 作为例子,其他也就大同小异了~ 1、要用 AES...甲方想要回复乙方正好相反,使用乙方公钥对数据进行加密,同理,乙方使用自己私钥来进行解密。...= window.atob(enc); // Hello World 总结 在业务 http 请求中,AES 密钥在前端随机生成,服务器获取 RSA 公钥,对 AES 密钥进行非对称加密,把加密密钥在请求头中传给服务器...服务器收到请求头中加密密钥,用 RSA 密钥进行解密,得到明文 AES 密钥,即可对 body 进行解密。...md5 有校验字符串一致性特性,为避免请求被拦截后篡改 body,可在发请求,将 body 字符串进行一个 md5 加密后在请求头传输,服务器收到请求后,解密 body 后再 md5 与请求头进行校验

    1.6K30

    关于CryptoJS中md5加密以及aes加密随笔

    最近项目中用到了各种加密,其中就包括从没有接触过得aes加密,因此网上各种查,官方一种说法: 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称....html,有想了解可以看看,我们是用CBC模式,AES-128bit, Pkcs7补码方式(后台有可能是PKCS5Padding,是一样),一开始后台设定key是10位,他们都可以加密解密,...贴代码: //aes加密 function encrypt(word) { var key = CryptoJS.enc.Utf8.parse("1234567890000000"); //16...; return decryptedStr.toString(); } 加密解密key和iv必须是一致,前台后台加密方式也必须是一致,不然肯定解不对,说实话我折腾了好久,终于好了。...因为CryptoJS默认就是CBC模式和Pkcs补码,所以我只用aes.js就可以,如果大家用是别的模式和补码方式,还要引用相应js。 ? mode开头是模式,pad开头是补码方式。

    5.1K51
    领券