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

相关推荐
TT哇1 小时前
【Java EE初阶】计算机是如何⼯作的
java·redis·java-ee
Fireworkitte8 小时前
Apache POI 详解 - Java 操作 Excel/Word/PPT
java·apache·excel
weixin-a153003083168 小时前
【playwright篇】教程(十七)[html元素知识]
java·前端·html
DCTANT8 小时前
【原创】国产化适配-全量迁移MySQL数据到OpenGauss数据库
java·数据库·spring boot·mysql·opengauss
Touper.8 小时前
SpringBoot -- 自动配置原理
java·spring boot·后端
黄雪超8 小时前
JVM——函数式语法糖:如何使用Function、Stream来编写函数式程序?
java·开发语言·jvm
ThetaarSofVenice9 小时前
对象的finalization机制Test
java·开发语言·jvm
望获linux10 小时前
【实时Linux实战系列】CPU 隔离与屏蔽技术
java·linux·运维·服务器·操作系统·开源软件·嵌入式软件
JosieBook10 小时前
【Java编程动手学】使用IDEA创建第一个HelloJava程序
java·开发语言·intellij-idea
Thomas_YXQ10 小时前
Unity3D DOTS场景流式加载技术
java·开发语言·unity