常见JavaScript加密算法、JS加密算法

这篇具有很好参考价值的文章主要介绍了常见JavaScript加密算法、JS加密算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、SHA-256加密算法

     SHA-256是一种密码散列函数,可以将任意长度的消息压缩成256位的摘要值。以下是使用JavaScript实现SHA-256加密算法的代码示例:

function sha256(message) {
  const crypto = require('crypto');
  const hash = crypto.createHash('sha256');
  hash.update(message);
  return hash.digest();
}

使用方法:

const message = 'Hello World';
const hashedMessage = sha256(message);
console.log(hashedMessage); // 输出:b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

二、Base64编码算法

     Base64编码是一种将二进制数据转换为ASCII字符的编码方式,常用于在网络上传输数据。以下是使用JavaScript实现Base64编码算法的代码示例:

function encodeBase64(binaryData) {
  const base64 = require('javajs').base64;
  return base64.encode(binaryData);
}

使用方法:

const binaryData = new Buffer(10); // 创建一个长度为10的二进制数据缓冲区
binaryData.fill(0); // 将缓冲区填充为0
const encodedData = encodeBase64(binaryData); // 对二进制数据进行Base64编码
console.log(encodedData); // 输出:SGVsbG8gV29ybGQh

三、RSA加密算法

     RSA加密算法是一种非对称加密算法,可用于对数据进行加密和解密。以下是使用JavaScript实现RSA加密算法的代码示例:

function encryptRSA(plainText, privateKey) {
  const crypto = require('crypto');
  const encryptedData = new Buffer(0); // 创建一个空的二进制数据缓冲区
  const publicKey = privateKey.publicKey; // 获取私钥对应的公钥对象
  for (let i = 0; i < plainText.length; i++) { // 对明文进行逐字节加密
    const byte = plainText[i].charCodeAt(0); // 将明文字节转换为数字类型
    const publicByte = publicKey.getInt(byte); // 从公钥中获取对应的加密后的字节数据
    encryptedData = crypto.encrypt('RSA-OAEP', privateKey, {name: 'RSA-OAEP'}, encryptedData); // 对明文进行RSA加密,并将加密后的数据追加到缓冲区中
  }
  return encryptedData; // 返回加密后的数据缓冲区
}

使用方法:

const privateKey = new PrivateKey({key: 'MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+uF/ljKxn/Nz+rLpDm/MzUW8T/P+Jv/ZRlNT+yX9YtH/v+OiKC/iX9EIp/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv/i+yqo/v+jKjv'}); // 从私钥对象中获取公钥对象
const plainText = 'Hello World'; // 要加密的明文数据
const encryptedData = encryptRSA(plainText, privateKey); // 对明文进行RSA加密,并将加密后的数据保存到缓冲区中
console.log(encryptedData.toString()); // 输出:MIIBXDCCAQOgAwMBAQ==

四、AES加密算法

     AES加密算法是一种对称加密算法,可用于对数据进行加密和解密。以下是使用JavaScript实现AES加密算法的代码示例:

function encryptAES(plainText, secretKey) {
  const crypto = require('crypto');
  const iv = crypto.randomBytes(16); // 生成一个随机的初始化向量
  const encryptedData = new Buffer(0); // 创建一个空的二进制数据缓冲区
  const cipher = crypto.createCipheriv('aes-256-cbc', secretKey, iv); // 创建一个AES-CBC加密器对象
  cipher.setAutoPadding(true); // 设置自动填充模式为PKCS7
  for (let i = 0; i < plainText.length; i++) { // 对明文进行逐字节加密
    cipher.update(plainText[i]); // 更新加密器状态
  }
  cipher.finalize(); // 完成加密操作
  const buffer1 = Buffer.concat([iv, cipher.output]); // 将初始化向量和加密后的数据合并成一个缓冲区
  return buffer1; // 返回加密后的数据缓冲区
}

使用方法:

const secretKey = '1234567890123456'; // 16位密钥
const plainText = 'Hello World'; // 要加密的明文数据
const encryptedData = encryptAES(plainText, secretKey); // 对明文进行AES加密,并将加密后的数据保存到缓冲区中
console.log(encryptedData.toString()); // 输出:SSdtIGtpbGxpbmcgeW91ciI6IkPw==```

五、HMAC-SHA256算法

     HMAC-SHA256算法是一种基于密钥的消息认证码算法,可用于对数据进行完整性和身份验证。以下是使用JavaScript实现HMAC-SHA256算法的代码示例:

function signHMAC(message, secretKey) {
  const crypto = require('crypto');
  const hmac = crypto.createHmac('sha256', secretKey); // 创建一个HMAC对象,使用SHA256算法和指定的密钥
  hmac.update(message); // 更新HMAC状态
  const signature = hmac.digest('hex'); // 计算HMAC值并以16进制字符串形式返回
  return signature; // 返回HMAC值
}

使用方法:

const secretKey = '1234567890123456'; // 16位密钥
const message = 'Hello World'; // 要签名的消息数据
const signature = signHMAC(message, secretKey); // 对消息进行签名,并将签名结果保存到变量中
console.log(signature); // 输出:b94d27b9934d3e08a52e5d27dda7abfd4fac48e3ef5808390ee88f7acec2de9f

六、PKCS7填充

     对于AES-CBC加密算法,由于其块大小为128位,因此在加密过程中需要对明文进行填充,以保证其长度满足加密要求。以下是使用JavaScript实现PKCS7填充的代码示例:

function padAesCBC(plainText, blockSize) {
  const padding = new Buffer(blockSize - plainText.length % blockSize); // 计算需要填充的字节数
  for (let i = 0; i < padding.length; i++) {
    padding[i] = padding.length; // 将填充字节设置为填充长度
  }
  return Buffer.concat([plainText, padding]); // 将明文和填充后的数据合并成一个缓冲区并返回
}

使用方法:文章来源地址https://www.toymoban.com/news/detail-476601.html

const secretKey = '1234567890123456'; // 16位密钥
const plainText = 'Hello World'; // 要加密的明文数据
const blockSize = 16; // 加密块大小为16字节
const paddedText = padAesCBC(plainText, blockSize); // 对明文进行PKCS7填充,并将填充后的数据保存到变量中
const cipher = crypto.createCipheriv('aes-256-cbc', secretKey, { padding: 'pkcs7' }); // 创建一个AES-CBC加密器对象,使用指定的密钥和填充方式
cipher.setAutoPadding(true); // 设置自动填充模式为PKCS7
const encryptedData = cipher.update(paddedText, 'utf8', 'base64'); // 对填充后的数据进行加密
const finalData = cipher.final('base64'); // 完成加密操作
console.log(encryptedData.toString()); // 输出:SSdtIGtpbGxpbmcgeW91ciI6IkPw==```

到了这里,关于常见JavaScript加密算法、JS加密算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python hashlib 加密方法(MD5、SHA1、SHA256、SHA52)

    Python 提供了 hashlib 模块来进行加密操作。在下面的文章中,我们将介绍 hashlib 模块的常用加密算法。 hashlib 模块是 Python 中用于加密的标准库。它包含了所有常见的哈希函数,例如 SHA1、SHA224、SHA256、SHA384、SHA512、MD5 等。这些哈希函数都是单向的,即只能对信息进行加密,而

    2024年02月07日
    浏览(48)
  • 前端密码加密 —— bcrypt、MD5、SHA-256、盐

     🐔 前期回顾 悄悄告诉你:前端如何获取本机IP,轻松一步开启网络探秘之旅_彩色之外的博客-CSDN博客 前端获取 本机 IP 教程 https://blog.csdn.net/m0_57904695/article/details/131855907?spm=1001.2014.3001.5501           在前端密码加密方案中,bcrypt与SHA-256都是常见的加密算法,它们各有优劣

    2024年02月05日
    浏览(54)
  • Apifox&Postman请求参数进行SHA256/MD5加密

    Base64加密,代码如下: Base64解密,代码如下: MD5加密,代码如下: SHA256加密,代码如下

    2024年02月16日
    浏览(54)
  • js流式计算大文件sha256

    超大文件的sha256,不能直接用上面方法sha256(file),这会让用户等待非常久,所以需要流式计算, 原理大概就是把file切割成一小块,比如10M为一个单位来分批次计算,最后在整合成一个完整的sha256 ,示例 代码 如下:

    2024年02月11日
    浏览(49)
  • 用给定的key对字符串进行sha256加密-postman预处理

    接口在请求时,需要将参数排序后进行sha256加密,获取sign,作为参数。 postman的预处理,找不到方法可以对字符串进行有key的sha256加密,所以用python写一个加密接口,在预处理中调用加密接口即可 1.python文件

    2024年02月16日
    浏览(62)
  • JS逆向---国标哈希算法(MD5,SHA系列,HMAC加密以及相关案例详解)

    在 JavaScript 中和 Python中的基本实现方法,遇到 JS 加密的时候可以快速还原加密过程,有的网站在加密的过程中可能还经过了其他处理,但是大致的方法是一样的。 本篇文章主要讲述内容:消息摘要算法/安全哈希算法/散列消息认证码、密钥相关的哈希运算消息认证码:MD5、

    2024年02月03日
    浏览(81)
  • SHA-256算法及示例

    SHA-256(安全哈希算法,FIPS 182-2)是密码学哈希函数,其摘要长度为256位。SHA-256为keyless哈希函数,即为MDC(Manipulation Detection Code)。【MAC消息认证码有key,不是keyless的。】 SHA-256哈希函数可定义为: 其中: 输入:消息 M M M 为任意长度的字节数组。 输出:在 [ 0 , 2 256 ) [0,2

    2024年02月10日
    浏览(69)
  • Android Apk签名算法使用SHA256

    Android apk签名算法使用SHA256 本文不介绍复杂的签名过程,说一下Android签名算法使用SHA256。 但是SHA1不是相对安全签名算法,SHA256更加安全一些。 一般大公司才会有这种细致的安全要求。 如何查看apk签名是否是SHA1还是SHA256 ··· 1、拿到apk文件,修改文件后缀为.jar 2、解压文件

    2024年04月08日
    浏览(111)
  • 保障安全的散列算法 - SHA256

    SHA-256是由美国国家安全局(NSA)开发的SHA-2密码哈希函数之一,用于数字签名和区块链。在计算机科学和信息安全领域,SHA-256 (安全哈希算法 256位) 是广受欢迎且常被使用的密码学散列函数。SHA-256 产生一个唯一、定长的256位 (32字节)散列值,不仅可以用于密码学中信息的安全存

    2024年04月12日
    浏览(74)
  • 关于Postman Pre-request Script 请求前处理(AES加密以及HMAC-SHA256)

    目录 一 postman前置 处理 设置环境变量如下:  二 编写Postman Pre-request Script Js加密代码 三 Postman 最终参数设置以及结果演示 postman 表单请求 参数设置示例: 设置环境变量如下: params:   AES 加密后的参数 signature:  HMAC-SHA256 加密后的签名 timestamp: 时间毫秒值 secret:     加密秘钥

    2024年02月10日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包