[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 发布!

相关推荐
货拉拉技术1 天前
网关 MCP 转换技术:从实现到平台落地
java·架构·mcp
艾菜籽1 天前
SpringMVC练习:加法计算器与登录
java·spring boot·spring·mvc
浮游本尊1 天前
Java学习第25天 - Spring Cloud Alibaba微服务生态
java
Cg136269159741 天前
Super的详解
java
毕设源码-朱学姐1 天前
【开题答辩全过程】以 便利店库存管理系统为例,包含答辩的问题和答案
java·eclipse
Nero181 天前
代码随想录二刷第九天 | 232.用栈实现队列、225. 用队列实现栈、20. 有效的括号、1047. 删除字符串中的所有相邻重复项
java
泉城老铁1 天前
tomcat 部署springboot,线程经常断开导致数据库连接池关闭,如何解决
java·spring boot·后端
Nero181 天前
代码随想录二刷第八天 | 28. 实现 strStr()、459.重复的子字符串
java
Le1Yu1 天前
配置管理的配置与拉取、热更新的配置、动态路由
java
Seven971 天前
剑指offer-34、第⼀次出现的字符
java