当前位置: 首页 > wzjs >正文

php网站开发系统英语做课后作业的网站

php网站开发系统,英语做课后作业的网站,网站备案百度站长提交,做网站用的什么软件在密码学里,凯撒密码(也叫恺撒密码、移位密码、恺撒代码或者恺撒移位)是一种简单且广为人知的加密技术。它属于替换密码的一种,在这种加密方式中,明文中的每个字母都会被替换成字母表中往后移动固定位数的字母。例如&a…

       在密码学里,凯撒密码(也叫恺撒密码、移位密码、恺撒代码或者恺撒移位)是一种简单且广为人知的加密技术。它属于替换密码的一种,在这种加密方式中,明文中的每个字母都会被替换成字母表中往后移动固定位数的字母。例如,若向左移动 3 位,字母 D 会被替换成 A,E 会变成 B,依此类推。该加密方法以尤利乌斯・恺撒(Julius Caesar)命名,他在私人通信中使用过这种方法。

1. 命名空间结构

namespace ciphers {namespace caesar {namespace {// 辅助函数定义}// 加密解密主函数定义}
}
  • 使用了命名空间 ciphers 和子命名空间 caesar,来组织代码,避免命名冲突

  • 匿名命名空间(namespace {})存放辅助函数,这些辅助函数只能在当前命名空间内访问

2. 辅助函数

inline char get_char(const int x) {return char(x + 65);
}inline int get_value(const char c) {return int(c - 65);
}
  • get_char:将0-25的整数值转换为对应的英文字母(A-Z)

  • get_value:将英文字母(A-Z)转换为0-25的整数值

  • 这两个函数通过ASCII码表进行转换(A的ASCII值为65)

3. 加密函数

std::string encrypt(const std::string& text, const int& shift) {std::string encrypted_text = "";for (char c : text) {int place_value = get_value(c);place_value = (place_value + shift) % 26;char new_char = get_char(place_value);encrypted_text += new_char;}return encrypted_text;
}
  • 遍历输入文本的每个字符

  • 获取字符的整数值,应用凯撒密码公式:(原值 + 移位数) % 26

  • 将加密后的整数值转换为字符,添加到结果字符串

  • 返回加密后的文本

4. 解密函数

std::string decrypt(const std::string& text, const int& shift) {std::string decrypted_text = "";for (char c : text) {int place_value = get_value(c);place_value = (place_value - shift) % 26;if (place_value < 0) {place_value = place_value + 26;}char new_char = get_char(place_value);decrypted_text += new_char;}return decrypted_text;
}
  • 与加密函数类似,但移位方向相反

  • 添加了对负值的处理,确保解密后的值在0-25范围内

5. 测试函数

void test() {// Test 1std::string text1 = "ALANTURING";std::string encrypted1 = ciphers::caesar::encrypt(text1, 17);std::string decrypted1 = ciphers::caesar::decrypt(encrypted1, 17);assert(text1 == decrypted1);std::cout << "Original text : " << text1;std::cout << " , Encrypted text (with shift = 17) : " << encrypted1;std::cout << " , Decrypted text : " << decrypted1 << std::endl;// Test 2std::string text2 = "HELLOWORLD";std::string encrypted2 = ciphers::caesar::encrypt(text2, 1729);std::string decrypted2 = ciphers::caesar::decrypt(encrypted2, 1729);assert(text2 == decrypted2);std::cout << "Original text : " << text2;std::cout << " , Encrypted text (with shift = 1729) : " << encrypted2;std::cout << " , Decrypted text : " << decrypted2 << std::endl;
}
  • 测试了两个不同的输入字符串和移位值

  • 使用 assert 确保加密和解密是互逆过程

  • 打印了原始文本、加密文本和解密文本

6. 主函数

int main() {test();return 0;
}
  • 调用测试函数运行测试案例

总结

这段代码实现了标准的凯撒密码加密解密功能,具有以下特点:

  1. 使用命名空间组织代码

  2. 提供了辅助函数处理字符和整数之间的转换

  3. 实现了加密和解密的核心逻辑

  4. 包含了测试代码验证功能的正确性

  5. 处理了负值等边界情况

代码结构清晰,功能完整,适合学习和使用凯撒密码的基础实现。

http://www.dtcms.com/wzjs/573408.html

相关文章:

  • 长春网站制作一般需要多少钱长沙网站seo
  • 网站制作一般要几天个人免费网上注册公司
  • 营销型网站建设平台wordpress+培训模板下载
  • 湖北可以做网站的公司英文网站google推广
  • 网站建好用电脑做服务器建网站图片怎么找
  • 做网站后端需要掌握什么技术域名ip地址查询
  • 饮食网站模板公司ui设计
  • 查询网站流量排名网站建设优化兼职在家
  • 食品企业网站建设策划方案书cms源码下载
  • 湛江免费建站常州网站制作案例
  • 网站怎么做效果好企业网站建设的申请
  • 烟台开发区网站建设阿里云企航域名购买方式
  • 庆阳网站设计厂家如何做好网站针对搜索引擎的seo
  • 网站响应式首页模板怎么利用wordpress做网站
  • 自学小程序开发需要学多久苏州百度seo
  • 动漫设计网站商业网站后缀名
  • 网站移动端是什么问题吗网站开发vs设计报告
  • 如何查询网站的空间公司变更股东需要多久
  • 兰州模板网站seo价格大岭山镇做网站
  • 网站开发 一眼广州网络建设公司
  • 网站建设与管理教学计划微信网站和手机网站的区别
  • 进行网站建设手机怎么登录自己做的网站
  • 电子商务网站建设实战aspaccess做网站
  • 做爰网站视屏免费制作一个手机app
  • 那个网站可以做软件出售的北京软件有限公司
  • 成都网站建设四川冠辰免费销售管理系统软件
  • 山东网站建设哪里有为企业做一个网站多少钱
  • phpcms v9农业网站模板深圳跨境电商公司排名
  • 各行业网站建设方案书搜索引擎营销的英文简称
  • 网站建设-应酷鹤壁网站建设公司