XBRL permits networking PDF, XML exchanged some MD5 authentication

PDF file to read the code, citing iTextSharp.text.pdf;

private void files_Click(object sender, EventArgs e)
        {
            OpenFileDialog file = new OpenFileDialog();
            file.ShowDialog();
            this.file.Text = file.FileName;
            filename = file.FileName;
            file.Dispose();

            StringBuilder text = new StringBuilder();

            if (File.Exists(filename))
            {
                try
                {
                    PdfReader pdfReader = new PdfReader(filename);
                    int numberOfPages = pdfReader.NumberOfPages;
                    for (int i = 0; i < pdfReader.NumberOfPages; i++)
                    {
                        // Page number starts from 1.
                        text.Append(iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(pdfReader, i + 1));
                    }
                    pdfReader.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("读取pdf文件问题:" + ex.ToString());
                }
            }
            test.Text = text.ToString();
            pdfMD5 = MD5Encrypt32(text.ToString());

            test.Text = $"pdf内容:{text.ToString()}内容加密后的MD5值:{pdfMD5}";

        }

MD5 encryption codes:

public static string MD5Encrypt32(string password)
        {
            //密文
            string pwd = string.Empty;
            //实例化一个md5对像
            MD5 md5 = MD5.Create();
            // 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择 
            byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(password));
            // 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
            for (int i = 0; i < s.Length; i++)
            {
                // 将得到的字符串使用十六进制类型格式。
                //格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
                //X2表示16进制
                pwd = pwd + s[i].ToString("X2");
            }
            return pwd;
        }

Write PDF file stream at the end of the code MD5:

private void write_Click(object sender, EventArgs e)
        {
            if (File.Exists(filename))
            {
                try
                {
                    FileStream fsw = File.OpenWrite(filename);
                    byte[] by = Encoding.UTF8.GetBytes($"PDF_MD5:{pdfMD5}{XBRLMD5}");
                    fsw.Position = fsw.Length;

                    fsw.Write(by, 0, by.Length);
                    fsw.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("pdf添加md5报错:" + ex.ToString());
                }
                MessageBox.Show("添加MD5成功!");

            }
        }

XBRL read:

private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog file = new OpenFileDialog();
            file.ShowDialog();
            this.xbrlFile.Text = file.FileName;
            XBfilename = file.FileName;
            file.Dispose();
            string text = File.ReadAllText(XBfilename);

            string t = MD5Encrypt32(text);
            XBRLMD5 = $"XBRL_MD5:{t}";
            test.Text = $"Xbrl内容:{text}内容加密后的MD5值:{t}";

        }

XBRL is written:

private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                StreamWriter myWrite = File.AppendText(XBfilename);
                myWrite.Write($"<!--PDF_MD5:{pdfMD5}-->");
                myWrite.Close();
                myWrite.Dispose();
            }
            catch (Exception ex)
            {

                MessageBox.Show("XBRL添加md5报错:" + ex.ToString());
            }
           
            MessageBox.Show("添加MD5成功!");
        }

 

Published 22 original articles · won praise 1 · views 6906

Guess you like

Origin blog.csdn.net/soulman1234/article/details/104495473