Vernam密码密钥文件sincronization

时间:2016-04-08 14:10:59

标签: vb.net visual-studio-2010

我在VB 2010上使用一次性打击垫软件。 问题如下。我有一个带有许多连续字符的txt文件,例如“KHKJHDKJDHAKHDAKHDAKHAKDHADHAKJDHASJDHA”,我需要读取这些字符的可变数量,并用相同数量的点替换它(例如,读取四个字符“KHKJ”用四个点替换它们“ .... HDKJDETCETC“)。在此之后,我将不得不记住txt密钥文件中最后一个点的位置,以便下次读取剩余的密钥。怎么做?

感谢info.de快速回复,对于没有深化我的请求,我深表歉意。让我解释一下,我的项目是一个Vernam聊天,我需要一个单键txt文件,必须在广播者和接收者之间以某种方式保持同步。当我发送消息时,必须删除使用的密钥,并在删除后接收的密钥也将其删除。 目标是同步两个关键文件!

我想到这样的事情:

'阅读部分

Using stream = File.OpenRead("c:\key.txt")
stream.Seek(v, SeekOrigin.Begin)  
Dim b = New Byte(a - 1) {} ' 
stream.Read(b, 0, a) 
Dim str = Encoding.ASCII.GetString(b)
txtPad.Text = str    ' portions of code read in txt for encodinh/decoding 
End Using

v =在文件key.txt中读取的启动位置

a =要获取的key.txt中的文本长度=要编码的文本的长度

写作部分

Using stream = File.OpenWrite("c:\key.txt")
stream.Seek(v, SeekOrigin.Begin)
Dim b = New Byte(a - 1) {}
stream.Write(b, 0, 1)
End Using

但是如何使用此代码用点取代字符来覆盖(不删除)?
最重要的是下一个重复后续编码/解码操作的坐标是什么? (V不断变化)

提前感谢。

1 个答案:

答案 0 :(得分:0)

Public Class Form1
  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    '//--- -----------------------------------------------
    '//--- KHKJHDKJDHAKHDAKHDAKHAKDHADHAKJDHASJDHA-line1#
    '//--- KHKJHDKJDHAKHDAKHDAKHAKDHADHAKJDHASJDHA-line2#

    Dim lines() As String = System.IO.File.ReadAllLines(Application.StartupPath & "\TextFile1.txt")
    Dim iReplaceLength As Integer
    Dim sReplaceSubString As String

    For Each line As String In lines
      MessageBox.Show(line)

      sReplaceSubString = "KHKJ"
      iReplaceLength = sReplaceSubString.Length
      MessageBox.Show(line.Replace(sReplaceSubString.ToCharArray, New String("."c, iReplaceLength)))

      MessageBox.Show(line.Substring(iReplaceLength, line.Length - iReplaceLength))

    Next

  End Sub

End Class