go RC4加密解密
总结:
1. RC4加密和解密公用一个函数,即 XORKeyStream()
2. 加密和解密不能用同一个Cipher对象,必须重新生成一个,否则失败
3. XORKeyStream()的两个参数,可以是同一个对象,即覆盖式的加密/解密
实验如下图
代码如下
package main
import ("crypto/rc4""fmt"
)
func main() {// 密钥key := []byte("abcdefg")// 要加密的源数据str := []byte("this is my test!")// 加密方式1:加密/解密后的数据单独存放{// 加密操作dest1 := make([]byte, len(str))fmt.Printf("方法1加密前:%s \n", str)cipher1, _ := rc4.NewCipher(key)cipher1.XORKeyStream(dest1, str)fmt.Printf("方法1加密后:%s \n", dest1)// 解密操作dest2 := make([]byte, len(dest1))cipher2, _ := rc4.NewCipher(key) // 切记:这里不能重用cipher1,必须重新生成新的cipher2.XORKeyStream(dest2, dest1)fmt.Printf("方法1解密后:%s \n\n", dest2)}// 加密方式2:加密后的数据直接存放在源数据那里,不需额外申请空间{// 加密操作fmt.Printf("方法2加密前:%s \n", str)cipher1, _ := rc4.NewCipher(key)cipher1.XORKeyStream(str, str) // 加密后的数据直接覆盖到str中fmt.Printf("方法2加密后:%s \n", str)// 解密操作cipher2, _ := rc4.NewCipher(key)cipher2.XORKeyStream(str, str) // 解密后的数据直接覆盖到str中fmt.Printf("方法2解密后:%s \n\n", str)}
}
go RC4加密解密相关推荐
- python 加密解密 rc4_python实现rc4加密解密,base64输出
这里将告诉您python实现rc4加密解密,base64输出,具体实现方法:from Crypto.Cipher import ARC4 as rc4cipher import base64 def ...
- RC4加密解密算法原理及实现对文件的加解密
本文简单实现了RC4算法对于文件的加解密,并已经验证成功.同时实现了对RC4算法加解密较大文件的测速 RC4加密解密算法的原理: 首先,通过我的理解,RC4算法所依赖的最根本原理是:对明文使用同一个密 ...
- RC4加密解密算法123
RC4是一种对称密码算法,它属于对称密码算法中的序列密码(streamcipher,也称为流密码),它是可变密钥长度,面向字节操作的流密码. RC4是流密码streamcipher中的一 ...
- java rc4_java实现的RC4加密解密算法示例
本文实例讲述了java实现的RC4加密解密算法.分享给大家供大家参考,具体如下: 有一个项目,需要解析一个用户提供的rc4加密后的文件,特意搜索整理了一个Java 版本的RC4加解密算法. publi ...
- java实现rc4密码_java实现RC4加密解密的实例教程
这篇文章主要介绍了java实现的RC4加密解密算法,结合具体实例形式分析了java RC4加密解密算法的实现与使用技巧,需要的朋友可以参考下 本文实例讲述了java实现的RC4加密解密算法.分享给大家 ...
- RC4加密解密java算法
有一个项目,需要解析一个用户提供的rc4加密后的文件,特意搜索整理了一个java 版本的RC4加解密算法. public static String HloveyRC4(String aInput,S ...
- rc4加密算法 php,php 实现RC4加密解密
RC4算法 RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ron Rivest在1987年设计的密钥长度可变的流加密算法簇.RC4算法是一种在电子信息领域加密的技术手段,用于无线通信网络,是一种电 ...
- 基于JAVA的RC4加密解密算法循环实现
RC4算法是一种对称加密算法,所谓对称加密,就是加密和解密的过程是一样的,加密和解密均采用同一把密钥.RC4算法的特点是算法简单,执行速度快安全性比较高并且密钥长度是可变的,可变范围为1-256字节( ...
- php怎样rc4加密,php 实现RC4加密解密
RC4算法 RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ron Rivest在1987年设计的密钥长度可变的流加密算法簇.RC4算法是一种在电子信息领域加密的技术手段,用于无线通信网络,是一种电 ...
最新文章
- 链接2: excel中的截取文子串的功能------left,mid以及right函数使用
- 周伯文对话斯坦福教授曼宁:人机对话智能新进展需要新“图灵测试”
- Python知识点笔记-列表list、元组tuple和dict类型
- 挖掘机燃料_2020广东挖掘机工程机械出租公司合作共赢
- MySQL 在 Mac 环境下的安装
- PHP笔记-用户登录权限拦截说明
- 2021年最值得推荐的报表工具,无代码轻松实现可视化开发
- 基于HTML5的网络拓扑图 - 设备状态面板
- paip.支付宝自动反退款器
- java版简易计算器,java 简易计算器
- php iis 重启服务,重新启动IIS即可生效
- java 美元符号_$ -----JavaScript 中美元符号 $ 的作用
- OAuth2 oauth_client_details表字段的详细说明
- springsecurity与gateway网关整合配置
- python 同步记事本_如何使用Python同步文件夹
- android 打包报错 Execution failed for task ‘:app:lintVitalRelease‘.
- 在线编辑、在线预览、在线转换,基于wps.js + java + react / vue,无需任何插件,零安装
- DDS的verilog 实现个人总结
- nginx中配置root和alias的区别
- Latex、如何将word中的表格转换为Latex代码
热门文章
- C#基础解析之Ⅲ 【循环结构】
- java对字符处理(一)--对HTML中字符转换
- SPOJ - SUBLEX Lexicographical Substring Search(后缀自动机)
- POJ - 3683 Priest John's Busiest Day(2-SAT+路径打印)
- UVA12107Digit Puzzle数字字谜(迭代加深搜索)
- 0004-Median of Two Sorted Arrays(寻找两个正序数组的中位数)
- Collecting package metadata (current_repodata.json): done Solving environment: failed with repodata
- 高德地图轨迹PHP,轨迹回放-点标记-示例中心-JS API 示例 | 高德地图API
- java中日期计算2月份_计算两日期间2月29日总数的Java程序
- [转]I,P,B帧和PTS,DTS的关系