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

相关推荐
小屁孩大帅-杨一凡18 分钟前
如何解决ThreadLocal内存泄漏问题?
java·开发语言·jvm·算法
学习3人组39 分钟前
在 IntelliJ IDEA 系列中phpstorm2025设置中文界面
java·ide·intellij-idea
cainiao0806052 小时前
Java 大视界:基于 Java 的大数据可视化在智慧城市能源消耗动态监测与优化决策中的应用(2025 实战全景)
java
长风破浪会有时呀3 小时前
记一次接口优化历程 CountDownLatch
java
云朵大王3 小时前
SQL 视图与事务知识点详解及练习题
java·大数据·数据库
我爱Jack4 小时前
深入解析 LinkedList
java·开发语言
27669582925 小时前
tiktok 弹幕 逆向分析
java·python·tiktok·tiktok弹幕·tiktok弹幕逆向分析·a-bogus·x-gnarly
用户40315986396635 小时前
多窗口事件分发系统
java·算法
用户40315986396635 小时前
ARP 缓存与报文转发模拟
java·算法
小林ixn5 小时前
大一新手小白跟黑马学习的第一个图形化项目:拼图小游戏(java)
java