lanbda_20080810 2023-07-07 10:56 采纳率: 60.9%
浏览 25

关于自研加密算法的解密

研发了个加密算法,但是太复杂写不出解密来,有谁能帮忙写一下吗。

'''
Name : Double-key imitation-RSA encryption algorithm. ---DKREA
Author : Star Wolf
Version : 1.0
'''


import random
from AES import *
import codecs

class error:
    def __init__(self) -> None:
        pass
    def E_KEY(lang):
        if(not lang in [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]):
            ex = Exception('The lang must in 4-31')
            raise ex

class Processing:
    def __init__(self) -> None:
        pass
    def ruest_key():
        a = []
        for i in range(62):
            a.append(chr(i+65))
        return a
    def Generate_key(lang):
        word_list = Processing.ruest_key()
        a = []
        for __count in range(lang):
            a.append(random.choice(word_list))
        return(a)
    def encode_key(lang):
        error.E_KEY(lang)
        K1 = ''.join(Processing.Generate_key(lang))
        K2 = ''.join(Processing.Generate_key(lang))
        K1A = ''.join(Processing.Generate_key(lang))
        K2A = ''.join(Processing.Generate_key(lang))
        K1B = AES_code.AES_encrypt(K1,K1A)
        K2B = AES_code.AES_encrypt(K2,K2A)
        K = ''.join([K1,K2])
        KEY1 = [K1A,K2B]
        KEY2 = [K2A,K1B]
        print([K,KEY1,KEY2])
        return [K,KEY1,KEY2]
    def decode_key(KEY1,KEY2):
        E_K1 = KEY1[1]#K2B
        E_K2 = KEY2[1]#K1B
        K_K1 = KEY2[0]#K2A
        K_K2 = KEY1[0]#K1A
        KEY2 = AES_code.AES_decrypt(E_K1,K_K1)
        KEY1 = AES_code.AES_decrypt(E_K2,K_K2)
        return(''.join([KEY1,KEY2]))

class circle:
    def __init__(self) -> None:
        pass
    def encode(KEY,data):
        KEY_list = []
        for i in KEY:
            #print(i)
            KEY_list.append(ord(str(i)))
        data_list = []
        for i in data:
            data_list.append(ord(str(i)))
        circle_Key = Processing.ruest_key()
        circle_Key_list = []
        for i in circle_Key:
            circle_Key_list.append(ord(str(i)))
        i_K = 0
        lang = len(KEY)
        KEY = 0
        data_H_list = []
        for data in data_list:
            KEY = KEY+KEY_list[i_K%lang]
            KEY = KEY % 62
            data_H = int(data)+int(circle_Key_list[KEY])
            data_H_list.append(data_H)
            i_K += 1
        return(data_H_list,KEY,i_K%lang)
    def decode(KEY,data,K_j,C_j):
        pass


class core_DKREA:
    def __init__(self) -> None:
        pass
    def encode(lang,data):
        K = Processing.encode_key(lang)
        KEY = K[0]


# if __name__ == "__main__":
#     #print(Processing.encode_key(31))
#     with codecs.open("./data.txt","r")as fp:
#         data = fp.read()
#         fp.close()
#     print(circle.encode(Processing.encode_key(31)[0],data))
if __name__ == "__main__":
    # KEY_list = Processing.encode_key(8)
    # K = KEY_list[0]
    # K1 = KEY_list[1]
    # K2 = KEY_list[2]
    # K_RE = Processing.decode_key(K1,K2)
    # print(K,K_RE,K == K_RE)
    # D1 = '123456'
    # K1 = 'asdfghjkl'
    # NK1 = 'qwertyuiop'
    # E_D1 = AES_code.AES_encrypt(D1,K1)
    # RE_D1 = AES_code.AES_decrypt(E_D1,NK1)
    # print(D1,K1,E_D1,RE_D1)
    print(ord('1'))
    print(circle.encode('a','1'))
    #print(circle.decode('a',['149'],0,35))

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-07-07 23:01
    关注
    • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7577470
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:设计一个三维向量类,并实现向量的加法、减法以及向量与标量的乘法和除法运算。
    • 除此之外, 这篇博客: 为什么要对数值类型的特征做归一化,树形算法为啥不需要归一化?中的 实验对比说明结论:  部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
      • 对于Lasso模型,使用MaxAbsScaler方式时,MSE增大十分明显,且归一化后结果高于不进行归一化时(可能是数据的问题),
      • 对于Redige模型,归一化结果也明显高于不归一化时的结果。
      • 对于SVR模型,不进行归一化时,其MSE会非常大,是因为svm实质上选择的是分割两类数据最远的超平面,由于错分类造成了影响,不进行归一化会造成对平面的影响,导致得到的划分平面不准确测试集成功率低。
      • 对于RandomForest和XGBoost来说,是否进行归一化对结果影响不大。这也是树模型的一大特征。
    • 您还可以看一下 孙玖祥老师的图解数据结构与算法课程中的 操作最后一个元素复杂度震荡问题的解决小节, 巩固相关知识点
    • 以下回答由chatgpt基于相关博客总结生成:

      在问题中,提到了一个自研加密算法的解密问题。然而,根据给定的参考资料,我们无法得知这种加密算法的具体细节和特性。没有具体的算法细节和实现,我们无法提供解密方法和代码。因此,对于这个问题,我无法提供解决方案。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月7日

悬赏问题

  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题
  • ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?