100分求解WORD和汉字加解密两问

xiaoMONKEY 2005-04-14 02:46:32
一问:怎样在WORD中查找指定字符,例如想找姓名为12333的,我想要的方法就是在WORD中找姓名然后取出姓名后的所有字符串 (50分)
二问:怎样将汉字加密,然后在解密。(50分)
最好有代码
...全文
133 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
kevinmo 2005-04-16
  • 打赏
  • 举报
回复
MD5加密
xiaoMONKEY 2005-04-16
  • 打赏
  • 举报
回复
我顶,再顶
bmd2chen 2005-04-16
  • 打赏
  • 举报
回复
试试我的VBA代码,在word 2k /win2003 下通过
 
Sub Test()
'
'
' Code by LOVEBOOM
'
Dim FindStr As String
Dim ReplaceStr As String

FindStr = "欢迎光临:http://blog.csdn.net/bmd2chen"

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = FindStr
ReplaceStr = DCrypt(FindStr) '计算加密值
.Replacement.Text = ReplaceStr '替换为加密值
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
MsgBox FindStr & vbCrLf & " 加密后的值为:" & ReplaceStr, 64
MsgBox ReplaceStr & vbCrLf & " 解密出来的值为:" & DCrypt(ReplaceStr), 64
End Sub


Function DCrypt(instring As String) As String
Dim i As Integer
Dim szlen As Long
Dim tmp As Integer
Dim rstr As String

szlen = Len(instring)
For i = 1 To szlen
tmp = Asc(Mid$(instring, i, 1))
tmp = tmp Xor 12 '非常简单的xor 加密
rstr = rstr & Chr(tmp)
Next
DCrypt = rstr
End Function
老夏Max 2005-04-15
  • 打赏
  • 举报
回复
Up学习!
xiaoMONKEY 2005-04-15
  • 打赏
  • 举报
回复

自己顶一下
加密已搞定
有没有WORD的代码
江海门户 2005-04-14
  • 打赏
  • 举报
回复
跑错了社区吧?呵呵

把汉字的机内码取出来,就可以用一般的数字加密算法加密了,解密之后又恢复到机内码
libralibra 2005-04-14
  • 打赏
  • 举报
回复
晕,怎么是java啊
老汉 2005-04-14
  • 打赏
  • 举报
回复
2/汉字加解密?关键是ASCII和U8的问题吧?

有一下的示例代码:
/// <summary>
/// 加密指定的字符串为字节数组。
/// </summary>
/// <param name="password">要加密的字符串密码。</param>
/// <returns>返回加密后的字节数组,长度不会超过 256。</returns>
public static byte[] EncrptPassword(string password)
{
if(password == null)
return null;

if(password == "")
return new byte[0];

byte[] buffer = System.Text.ASCIIEncoding.ASCII.GetBytes(password);

return buffer; //临时使用

// System.Security.Cryptography.RijndaelManaged rijndael = new System.Security.Cryptography.RijndaelManaged();
//
// System.Security.Cryptography.SHA256 sha = System.Security.Cryptography.SHA256.Create();
// rijndael.Key = sha.ComputeHash(System.Text.UnicodeEncoding.Unicode.GetBytes("Key__" + password + "__Key"));
// rijndael.IV = sha.ComputeHash(System.Text.UnicodeEncoding.Unicode.GetBytes("IV__" + password + "__IV")); //error
//
// System.Security.Cryptography.ICryptoTransform encryptor = rijndael.CreateEncryptor();
//
// System.IO.MemoryStream ms = new System.IO.MemoryStream();
// try
// {
// System.Security.Cryptography.CryptoStream cs = new System.Security.Cryptography.CryptoStream(ms, encryptor, System.Security.Cryptography.CryptoStreamMode.Write);
//
// try
// {
// cs.Write(buffer, 0, buffer.Length);
// cs.FlushFinalBlock();
// }
// finally
// {
// cs.Close();
// }
// }
// finally
// {
// ms.Close();
// }
//
// buffer = ms.ToArray();
// byte [] bytes = new byte[64 + buffer.Length];
//
// Array.Copy(rijndael.Key, 0, bytes, 0, 32);
// Array.Copy(rijndael.IV, 0, bytes, 32, 32); //error
// Array.Copy(buffer, 0, bytes, 64, buffer.Length);
//
// return bytes;
}

/// <summary>
/// 解密指定的字节数组密码。
/// </summary>
/// <param name="password">要解密的字节数组密码。</param>
/// <returns>返回解密后的字符串密码。</returns>
public static string DecrptPassword(byte[] password)
{

//临时使用
return System.Text.ASCIIEncoding.ASCII.GetString(password);

// if(password == null)
// return null;
// if(password.Length == 0)
// return "";
//
// if(password.Length < 64)
// throw new ArgumentException("无效的已加密的密码字节数组,其长度一定是大于 64 的值。");
//
// System.Security.Cryptography.RijndaelManaged rijndael = new System.Security.Cryptography.RijndaelManaged();
//
// byte [] buffer = new byte[32];
// Array.Copy(password, 0, buffer, 0, 32);
// rijndael.Key = buffer;
// Array.Copy(password, 32, buffer, 0, 32);
// rijndael.IV = buffer;
//
// buffer = new byte[password.Length - 64];
// Array.Copy(password, 64, buffer, 0, password.Length - 64);
//
// System.Security.Cryptography.ICryptoTransform decryptor = rijndael.CreateDecryptor();
//
// System.IO.MemoryStream ms = new System.IO.MemoryStream();
//
// try
// {
// System.Security.Cryptography.CryptoStream cs = new System.Security.Cryptography.CryptoStream(ms, decryptor, System.Security.Cryptography.CryptoStreamMode.Write);
//
// try
// {
// cs.Write(buffer, 0, buffer.Length);
// cs.FlushFinalBlock();
// }
// finally
// {
// cs.Close();
// }
// }
// finally
// {
// ms.Close();
// }
//
// return System.Text.ASCIIEncoding.ASCII.GetString(ms.ToArray());
}
老汉 2005-04-14
  • 打赏
  • 举报
回复
1/VBA编程,调用WORD的FIND函数不就OK了么?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧