方法:把26位字母与1-26相应的数字对应起来,密文即为明文字母对应的数字与密钥字母对应的数字相加-1所对应的字母。- @echo off&setlocal enabledelayedexpansion
- set "code=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"
- for %%i in (%code%) do (
- set /a num+=1
- set t!num!=%%i
- set p%%i=!num!
- )
- :begin
- set /p text=请输入明文:&set /p key=请输入密钥:&set /p=密文:<nul
- :loop
- set "_text=%text:~,1%"&set "_key=%key:~,1%"
- set "text=%text:~1%"&set "key=%key:~1%%_key%"
- set /a n=!p%_text%!+!p%_key%!
- set /a n=!n!%%26-1
- set /p=!t%n%! <nul
- if defined text goto loop
- echo.&echo.&goto begin
复制代码 set "key=%key:~1%%_key%"一句借鉴了batman的,感觉好多种方法这种最简洁。- 哦,好像和上楼的思想一样啊,不好意思啊,发表以后才仔细看。把标头去了!
复制代码
[ 本帖最后由 lhjoanna 于 2008-11-19 01:24 编辑 ] |