信息安全作业使用频率分析法,分析密文基于python

1.原题

使用频率分析法,尝试分析如下一段密文,并给出完整的分析过程。

注意:过程不全者不得分。

WB WI KJB MK RMIT BMIQ BJ RASHMWK RMVP YJERYRKB MKD WBI IWOKWXWVMKVR MKD IJYR YNIB URYMWK NKRASHMWKRD BJ OWER M VJYSHRBR RASHMKMBWJK JKR CJNHD PMER BJ LR FNMHWXWRD MKD WKISWURD BJ INVP MK RABRKB BPMB PR VJNHD URMVP BPR IBMBR JX RKHWOPBRKRD YWKD VMSMLHR JX URVJOKWGWKO IJNKDHRII IJNKD MKD IPMSRHRII IPMSR W DJ KJB DRRY YTIRHX BPR XWKMH MNBPJUWBT LNB YT RASRUWRKVR CWBP QMBM PMI HRXB KJ DJNLB BPMB BPR XJHHJCWKO WI BPR SUJSRU MSSHWVMBWJK MKD WKBRUSURBMBWJK W JXXRU YT BPRJUWRI WK BPR PJSR BPMB BPR RIIRKVR JX JQWKMCMK QMUMBR CWHH URYMWK WKBMVB

练习1h半写了一串python代码

import numpy as np 
import pandas as pd 
arr1=input() 
arr1=list(arr1)
arr1=np.array(arr1)
arr2=np.array(['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'])
arr3=np.zeros(26)
print(len(arr2))
print(type(arr1))
num=len(arr1)
for i in range(num):
    for j in range(len(arr2)):
        if arr1[i]==arr2[j]:
            arr3[j]=arr3[j]+1
print(arr3)
arr3 = pd.Series(arr3,index =arr2)
#print(arr3)
arr3=arr3.sort_values(ascending=False)
print(arr3)
arr4=['E','T','A','O','I','N','S','H','R','D','L','C','U','M','W','F','G','Y','P','B','V','K','J','X','Q','Z']
arr5=arr3.index.tolist()
print(arr5)
#print(arr1)
for i in range(num):
    for j in range(len(arr5)):
        if arr1[i]==arr5[j]:
            arr1[i]=arr4[j]
            break
arr1="".join(arr1)
print(arr1)

运行的结果

IT IS ONT AO EASB TASK TN EPLRAIO EAUH MNJEMEOT AOD ITS SIGOIFIUAOUE AOD SNME MWST CEMAIO WOEPLRAIOED TN GIJE A UNMLRETE EPLRAOATINO NOE YNWRD HAJE TN VE QWARIFIED AOD IOSLICED TN SWUH AO EPTEOT THAT HE UNWRD CEAUH THE STATE NF EORIGHTEOED MIOD UALAVRE NF CEUNGOIXIOG SNWODRESS SNWOD AOD SHALERESS SHALE I DN ONT DEEM MBSERF THE FIOAR AWTHNCITB VWT MB EPLECIEOUE YITH KATA HAS REFT ON DNWVT THAT THE FNRRNYIOG IS THE LCNLEC ALLRIUATINO AOD IOTECLCETATINO I NFFEC MB THENCIES IO THE HNLE THAT THE ESSEOUE NF NKIOAYAO KACATE YIRR CEMAIO IOTAUT

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值