[Golang] RC4加解密

@[toc]

前言

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

代码

工具类

go 复制代码
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)
}

测试类

go 复制代码
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 发布!

相关推荐
q***47183 分钟前
Spring中的IOC详解
java·后端·spring
vx_vxbs6615 分钟前
【SSM电影网站】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·python·mysql·小程序·php·idea
SunnyDays101139 分钟前
如何使用 Java 删除 Word 文档中的水印
java·删除word文档水印
毕设源码-邱学长1 小时前
【开题答辩全过程】以 基于Java企业人事工资管理系统为例,包含答辩的问题和答案
java·开发语言
转转技术团队1 小时前
回收系统架构演进实战:与Cursor结对扫清系统混沌
java·架构·cursor
AI分享猿1 小时前
Java后端实战:SpringBoot接口遇异常请求,轻量WAF兼顾安全与性能
java·spring boot·安全
稚辉君.MCA_P8_Java2 小时前
Gemini永久会员 Java中的四边形不等式优化
java·后端·算法
DKPT2 小时前
ZGC和G1收集器相比哪个更好?
java·jvm·笔记·学习·spring
n***F8752 小时前
修改表字段属性,SQL总结
java·数据库·sql
q***69772 小时前
【Spring Boot】统一数据返回
java·spring boot·后端