为了账号安全,请及时绑定邮箱和手机立即绑定

[Golang] RC4加解密

标签:
Go 算法

@[toc]

前言

拿去直接用,直接 Ctrl+C/V

代码

工具类

package utils

import (
	"crypto/rc4"
	"encoding/base64"
)

// 加密
func EncryptionRc4(k, query string) string {
	key := []byte(k)
	plaintext := []byte(query)
	// encryption
	ciphertext := make([]byte, len(plaintext))
	cipher1, _ := rc4.NewCipher(key)
	cipher1.XORKeyStream(ciphertext, plaintext)
	return base64.StdEncoding.EncodeToString(ciphertext)
}

// 解密
func DecryptionRc4(k, query string) string {
	param, err := base64.StdEncoding.DecodeString(query)
	if err != nil {
		return ""
	}
	key := []byte(k)
	ciphertext := param
	plaintextDec := make([]byte, len(ciphertext))
	cipher2, _ := rc4.NewCipher(key)
	cipher2.XORKeyStream(plaintextDec, ciphertext)
	return string(plaintextDec)
}

测试类

func TestRc4(t *testing.T) {
	// 密钥 & 待加密字符串
	rc4 := utils.EncryptionRc4("javaPub_api_key", "我要被加密啦,好害怕!!!")
	fmt.Println("这是加密后的👇:")
	fmt.Println(rc4)
	decryptionRc4 := utils.DecryptionRc4("javaPub_api_key", rc4)
	fmt.Println("这是解密后的👇:")
	fmt.Println(decryptionRc4)
}

祝:工作顺利,得心应手。我是 JavaPub。


本文由博客一文多发平台 OpenWrite 发布!

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消