凯撒密码VB 2008 [英] Caesar Cipher VB 2008

查看:73
本文介绍了凯撒密码VB 2008的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试解密已保存所有加密文本和偏移量的文件.请帮助我修复代码:

导入System.IO
公共课程表格1
   昏暗邮件(10)作为字符
    Dim DecodedMessage(10)作为Char
   变暗位置(10)为整数
   昏暗偏移量为整数
    Dim i As Integer
   长度为整数的暗影
   将FileReader变暗为StreamReader
   将FileWriter变暗为StreamWriter
   昏暗的结果作为DialogResult

   私有Sub btnEncrypt_Click(ByVal发送者为System.Object,ByVal e为System.EventArgs)处理btnEncrypt.Click
       结果= OpenFileDialog1.ShowDialog
       如果Result = DialogResult.OK然后
            FileWriter =新的StreamWriter(OpenFileDialog1.FileName,True)
       如果结束
       我= -1
       做
           我=我+1
            Message(i)= InputBox(输入您要加密的消息.")
       循环直到Message(i)=#"
       长度= i
       偏移量= InputBox(输入偏移量".)
       我= -1
       做
           我=我+1
           位置(i)=升序(消息(i))
           位置(i)=位置(i)+偏移量
           做
               如果位置(i)> 90然后
                   位置(i)=位置(i)-26
               如果结束
               如果位置(i)< 65然后
                   位置(i)=位置(i)+ 26
               如果结束
           循环直到Position(i)< 90并且位置(i)> 65
           消息(i)= Chr(位置(i))
       循环直到i =(长度-1)
        FileWriter.WriteLine(Message)
        FileWriter.WriteLine(Offset)
       我= -1
       做
           我=我+1
            MsgBox(Message(i))
       循环直到i =(长度-1)
        FileWriter.Close()
   结束子

   私有Sub btnDecrypt_Click(ByVal发送者为System.Object,ByVal e为System.EventArgs)处理btnDecrypt.Click
       我= -1
       做
           我=我+1
            Message(i)= InputBox(输入您要解密的消息.")
       循环直到Message(i)=#"
       长度= i
       偏移量= InputBox(输入偏移量.")
       我= -1
       做
           我=我+1
           位置(i)=升序(消息(i))
           位置(i)=位置(i)-偏移量
           做
               如果位置(i)> 90然后
                   位置(i)=位置(i)-26
               如果结束
               如果位置(i)< 65然后
                   位置(i)=位置(i)+ 26
               如果结束
           循环直到Position(i)< 90并且位置(i)> 65
           消息(i)= Chr(位置(i))
       循环直到i =(长度-1)
       我= -1
       做
           我=我+1
            MsgBox(Message(i))
       循环直到i =(长度-1)
   结束子

   私有Sub btnDecryptAll_Click(ByVal发送者为System.Object,ByVal e为System.EventArgs)处理btnDecryptAll.Click
       结果= OpenFileDialog1.ShowDialog
       如果Result = DialogResult.OK然后
            FileReader =新建StreamReader(OpenFileDialog1.FileName)
       如果结束
       虽然不是FileReader.EndOfStream
           消息= FileReader.ReadLine
           偏移量= FileReader.ReadLine
           我= -1
           做
               我=我+1
               位置(i)=升序(消息(i))
               位置(i)=位置(i)-偏移量
                '做
               如果位置(i)> 90然后
                   位置(i)=位置(i)-26
               如果结束
               如果位置(i)< 65然后
                   位置(i)=位置(i)+ 26
               如果结束
                直到位置(i)的循环< 90并且位置(i)> 65
               消息(i)= Chr(位置(i))
                MsgBox(Message(i))
           循环直到Message(i)=#"
        MsgBox(消息末尾.")
       结束时
        FileReader.Close()
   结束子

   私有Sub btnExit_Click(ByVal发送者为System.Object,ByVal e为System.EventArgs)处理btnExit.Click
       结束
   结束子
结束类

解决方案

在没有用于加密文件的代码的情况下,没人能知道为什么您的解密技术不起作用?

I am trying to decrypt the file which has all of the encrypted text and offsets saved. Please help me fix my code:

Imports System.IO
Public Class Form1
    Dim Message(10) As Char
    Dim DecodedMessage(10) As Char
    Dim Position(10) As Integer
    Dim Offset As Integer
    Dim i As Integer
    Dim Length As Integer
    Dim FileReader As StreamReader
    Dim FileWriter As StreamWriter
    Dim Result As DialogResult

    Private Sub btnEncrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEncrypt.Click
        Result = OpenFileDialog1.ShowDialog
        If Result = DialogResult.OK Then
            FileWriter = New StreamWriter(OpenFileDialog1.FileName, True)
        End If
        i = -1
        Do
            i = i + 1
            Message(i) = InputBox("Enter your message to be ENCRYPTED.")
        Loop Until Message(i) = "#"
        Length = i
        Offset = InputBox("Enter an offset.")
        i = -1
        Do
            i = i + 1
            Position(i) = Asc(Message(i))
            Position(i) = Position(i) + Offset
            Do
                If Position(i) > 90 Then
                    Position(i) = Position(i) - 26
                End If
                If Position(i) < 65 Then
                    Position(i) = Position(i) + 26
                End If
            Loop Until Position(i) < 90 And Position(i) > 65
            Message(i) = Chr(Position(i))
        Loop Until i = (Length - 1)
        FileWriter.WriteLine(Message)
        FileWriter.WriteLine(Offset)
        i = -1
        Do
            i = i + 1
            MsgBox(Message(i))
        Loop Until i = (Length - 1)
        FileWriter.Close()
    End Sub

    Private Sub btnDecrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDecrypt.Click
        i = -1
        Do
            i = i + 1
            Message(i) = InputBox("Enter your message to be DECRYPTED.")
        Loop Until Message(i) = "#"
        Length = i
        Offset = InputBox("Enter an offset.")
        i = -1
        Do
            i = i + 1
            Position(i) = Asc(Message(i))
            Position(i) = Position(i) - Offset
            Do
                If Position(i) > 90 Then
                    Position(i) = Position(i) - 26
                End If
                If Position(i) < 65 Then
                    Position(i) = Position(i) + 26
                End If
            Loop Until Position(i) < 90 And Position(i) > 65
            Message(i) = Chr(Position(i))
        Loop Until i = (Length - 1)
        i = -1
        Do
            i = i + 1
            MsgBox(Message(i))
        Loop Until i = (Length - 1)
    End Sub

    Private Sub btnDecryptAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDecryptAll.Click
        Result = OpenFileDialog1.ShowDialog
        If Result = DialogResult.OK Then
            FileReader = New StreamReader(OpenFileDialog1.FileName)
        End If
        While Not FileReader.EndOfStream
            Message = FileReader.ReadLine
            Offset = FileReader.ReadLine
            i = -1
            Do
                i = i + 1
                Position(i) = Asc(Message(i))
                Position(i) = Position(i) - Offset
                'Do
                If Position(i) > 90 Then
                    Position(i) = Position(i) - 26
                End If
                If Position(i) < 65 Then
                    Position(i) = Position(i) + 26
                End If
                'Loop Until Position(i) < 90 And Position(i) > 65
                Message(i) = Chr(Position(i))
                MsgBox(Message(i))
            Loop Until Message(i) = "#"
        MsgBox("End of message.")
        End While
        FileReader.Close()
    End Sub

    Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
        End
    End Sub
End Class

解决方案

Without having the code you used to encrypt the file how would anybody be able to know why your decryption technique doesn't work?


这篇关于凯撒密码VB 2008的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆