轻院1064加密字符

这篇博客介绍了一种字符加密方法,加密规则包括将所有字母转为小写,字母'a'到'y'向前平移一位,'z'转为'a',其他字符保持不变。示例输入和输出展示了加密过程。
摘要由CSDN通过智能技术生成

Description

从键盘输入一批字符,以@结束,按要求加密并输出。

Input

从键盘输入一批字符,占一行,以@结束。

Output

输出占一行
加密规则:
1)、所有字母均转换为小写。
2)、若是字母'a'到'y',则转化为下一个字母。
3)、若是'z',则转化为'a'。
4)、其它字符,保持不变。

Sample Input

Kyh520@

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
QString 类本身并没有提供加密字符串的函数,但可以使用其他加密算法库将 QString 类型的字符串进行加密。常用的加密算法有对称加密算法(如 AES、DES、3DES 等)、非对称加密算法(如 RSA、ECC 等)和哈希算法(如 MD5、SHA1、SHA256 等)等。 以下是一个使用 AES 对称加密算法对 QString 类型的字符串进行加密的示例代码: ```cpp #include <QByteArray> #include <QString> #include <QCryptographicHash> #include <QAESEncryption> // 将 QString 类型的字符串进行 AES 加密 QString encrypt(const QString& str, const QString& key) { QByteArray keyBytes = QCryptographicHash::hash(key.toUtf8(), QCryptographicHash::Sha256); QByteArray strBytes = str.toUtf8(); QByteArray encryptedBytes = QAESEncryption::Crypt(QAESEncryption::AES_128, QAESEncryption::ECB, strBytes, keyBytes, keyBytes.left(16)); return QString::fromLatin1(encryptedBytes.toBase64()); } // 将 AES 加密后的 QString 类型的字符串进行解密 QString decrypt(const QString& str, const QString& key) { QByteArray keyBytes = QCryptographicHash::hash(key.toUtf8(), QCryptographicHash::Sha256); QByteArray encryptedBytes = QByteArray::fromBase64(str.toLatin1()); QByteArray decryptedBytes = QAESEncryption::Decrypt(QAESEncryption::AES_128, QAESEncryption::ECB, encryptedBytes, keyBytes, keyBytes.left(16)); return QString::fromUtf8(decryptedBytes); } ``` 在上面的代码中,使用 QCryptographicHash 类将用户提供的密码字符串进行哈希运算,得到一个 256 位的密钥。然后,将要加密的 QString 类型的字符串转换为 QByteArray 类型的字节数组,使用 QAESEncryption 类进行 AES 加密,得到一个加密后的 QByteArray 类型的字节数组。最后,将加密后的字节数组转换为 Base64 编码后存储到 QString 类型的字符串中。 在解密的过程中,首先使用 QCryptographicHash 类将用户提供的密码字符串进行哈希运算,得到一个 256 位的密钥。然后,将加密后的 QString 类型的字符串转换为 QByteArray 类型的字节数组,使用 QAESEncryption 类进行 AES 解密,得到一个解密后的 QByteArray 类型的字节数组。最后,将解密后的字节数组转换为 QString 类型的字符串。 需要注意的是,上面的示例代码中使用的是 AES 对称加密算法,其中使用的 ECB 模式是最简单的模式,不具备抗重放攻击的能力。在实际的应用中,为了提高安全性,应该采用更加复杂的加密算法和模式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值