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

自适应网站建设都找全网天下网址导航推广

自适应网站建设都找全网天下,网址导航推广,软件开发 网站建设,网站优化怎么做效果才好常见JavaScript加密算法、JS加密算法 一、SHA-256加密算法二、Base64编码算法三、RSA加密算法四、AES加密算法五、HMAC-SHA256算法六、PKCS7填充 一、SHA-256加密算法 SHA-256是一种密码散列函数,可以将任意长度的消息压缩成256位的摘要值。以下是使用JavaScript实现…

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

  • 一、SHA-256加密算法
  • 二、Base64编码算法
  • 三、RSA加密算法
  • 四、AES加密算法
  • 五、HMAC-SHA256算法
  • 六、PKCS7填充

一、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); // 设置自动填充模式为PKCS7for (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]); // 将明文和填充后的数据合并成一个缓冲区并返回
}

使用方法:

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==```
http://www.tj-hxxt.cn/news/16747.html

相关文章:

  • 网站售后维护seo优化服务公司
  • 色调网站百度地图疫情实时动态
  • 怎样登入网站后台如何建网址
  • 自开发网站中国站长之家网站
  • 江门做网站哪家好北京百度总部
  • 广告传媒网站模板软件推广接单平台
  • 贵阳制作网站网络推广渠道公司
  • wordpress学校网站neotv
  • 好看的wordpress文章模板下载seoul是什么国家
  • 高端网站建设设seo关键词排名优化方法
  • 庆云网站建设舆情管理
  • 门户网站建设好处如何建立一个网站平台
  • 种子网站开发公司seo是什么级别
  • 最新军事动态最新消息外包seo服务口碑好
  • 广州小企业网站制作嘉兴seo计费管理
  • 做网站员培训企业邮箱注册申请
  • 中国合伙人2做的什么网站山东网站seo
  • 山东郓城网站建设百度app免费下载安装
  • jn建站系统启动互联全网营销推广
  • 沈阳盘古网络做网站做的好么做网站公司排名
  • 南昌建站推广公司沧州网络推广公司
  • 腾讯的网站建设用了多少钱yw77731域名查询
  • 做的美食视频网站福建seo学校
  • 网站上做销售网点怎么做网站域名购买
  • 网站做零售百度移动端优化
  • 网站制作网页设计企业seo优化服务
  • 网站设计中 查询怎么做百度人工服务电话
  • wordpress去除category海南seo快速排名优化多少钱
  • 网站升级改造建设方案百度小程序关键词优化
  • 做网站的公司怎么赚钱seo策划