开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 494|回复: 2
收起左侧

[求助] 求助大佬帮忙C#翻译到易语言

[复制链接]
结帖率:0% (0/1)
发表于 2023-12-14 03:27:38 | 显示全部楼层 |阅读模式   江苏省徐州市
   public static void Encrypt(byte[] buffer, int keyIndex = 0)
        {
            using (MemoryStream memory = new MemoryStream(Acckey))
            {
                using (BinaryWriter bin = new BinaryWriter(memory))
                {
                    bin.Seek(1028, SeekOrigin.Begin);
                    bin.Write((ushort)(keyIndex));
                    for (int i = 0; i < buffer.Length; i++)
                    {
                        byte data = (byte)(buffer ^ Acckey[Acckey[1028] + 4]);
                        data += Acckey[Acckey[1028] + 516];
                        data ^= Acckey[Acckey[1029] + 260];

                        byte data0 = (byte)(data + Acckey[Acckey[1029] + 772]);
                        data = (byte)(data0 & 15);
                        data <<= 4;

                        byte pass0 = (byte)(data0 >> 4);
                        buffer = (byte)(data | pass0);

                        //Console.WriteLine(i + "  " + buffer.ToString("X"));

                        bin.Seek(1028, SeekOrigin.Begin);
                        bin.Write((ushort)(i + 1 + keyIndex));
                    }
                }
            }

        }
        public static void Decrypt(byte[] buffer, int starIndex = 0)
        {
            using (MemoryStream memory = new MemoryStream(Acckey))
            {
                using (BinaryWriter bin = new BinaryWriter(memory))
                {
                    bin.Seek(1030, SeekOrigin.Begin);
                    bin.Write((ushort)(starIndex));//重置key索引

                    for (int i = starIndex; i < buffer.Length; i++)
                    {
                        byte data = (byte)(buffer & 15);
                        data = (byte)((data << 4) | (buffer >> 4));
                        data = (byte)(data - Acckey[Acckey[1031] + 772] + 256);
                        data ^= Acckey[Acckey[1031] + 260];
                        data = (byte)(data - Acckey[Acckey[1030] + 516] + 256);
                        buffer = (byte)(data ^ Acckey[Acckey[1030] + 4]);

                        bin.Seek(1030, SeekOrigin.Begin);
                        bin.Write((ushort)(i + 1));
                    }
                }
            }

        }
    }
}
结帖率:100% (10/10)
发表于 2023-12-14 10:31:30 | 显示全部楼层   山西省太原市
这段代码是一个加密和解密的类,包含两个静态方法:Encrypt和Decrypt。这两个方法都接受一个字节数组buffer和一个可选的整数keyIndex或starIndex作为参数。

Encrypt方法的作用是对输入的字节数组进行加密。它首先创建一个MemoryStream对象,然后使用BinaryWriter将Acckey(一个字节数组)写入到MemoryStream中。接着,它将keyIndex写入到MemoryStream的第1028个位置。然后,它遍历输入的字节数组buffer,对每个字节进行异或操作,并将结果存储回buffer中。同时,它还更新了MemoryStream中的索引值。最后,它将加密后的buffer写回到MemoryStream中。

Decrypt方法的作用是对输入的字节数组进行解密。它与Encrypt方法类似,首先创建一个MemoryStream对象,然后将Acckey写入到MemoryStream中。接着,它将starIndex写入到MemoryStream的第1030个位置。然后,它遍历输入的字节数组buffer,对每个字节进行解密操作,并将结果存储回buffer中。同时,它还更新了MemoryStream中的索引值。最后,它将解密后的buffer写回到MemoryStream中。

总之,这段代码实现了一个简单的加密和解密算法,通过异或操作对字节数组进行加密和解密。

点评

禁止使用chatGPT生成的内容回复,一经发现将对发帖者予以警告、禁言处理,请知悉!   广东省东莞市  发表于 2023-12-14 13:42
回复 支持 反对

使用道具 举报

  高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表