gpt4 book ai didi

C++简单加密

转载 作者:行者123 更新时间:2023-11-30 20:38:36 24 4
gpt4 key购买 nike

我正在尝试使用相同长度的字符和 key 进行简单加密

#define u8 unsigned char
const int CHARMODMAX = 256;

u8 encrypt(u8 value, u8 key){
int rawValue = static_cast<int>(value);
int rawKey = static_cast<int>(key);
return ((rawValue+rawKey)%CHARMODMAX);
}

u8 decrypt(u8 value, u8 key){
int rawValue = static_cast<int>(value);
int rawKey = static_cast<int>(key);
int rawDiff = rawValue-rawKey;
return rawDiff >= 0 ? (rawDiff) : (CHARMODMAX + rawDiff);

}

但是,在调用加密和解密后,我似乎失去了精度。任何帮助都会很棒,请注意,自从我使用 C++ 以来已经很长时间了:)

静态转换为 int 是否会降低精度?如果是这样,有没有更好的方法来进行这个简单的数学计算

最佳答案

这是您的函数的简短形式:

u8 encrypt(u8 value, u8 key)
{
return value + key;
}

u8 decrypt(u8 value, u8 key)
{
return value - key
}

unsigned char提升为int不会丢失任何东西。促销回导致值(value)截断。所以操作:

(unsigned char)(x + y * 256)

总是等同于:

x & 255 // (or 0xFF)

关于C++简单加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28510502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com