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

xiaoMONKEY 2005-04-14 02:46:32
一问:怎样在WORD中查找指定字符,例如想找姓名为12333的,我想要的方法就是在WORD中找姓名然后取出姓名后的所有字符串 (50分)
二问:怎样将汉字加密,然后在解密。(50分)
最好有代码
...全文
165 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了么?
内容概要:本文围绕不确定环境下的多式联运路径优化问题展开研究,提出并实现了基于AFO算法、遗传算法(GA)和粒子群优化算法(PSO)的三种智能优化方法,并借助Matlab平台完成算法编程与仿真。研究构建了考虑时间、成本、转运风险等多重不确定因素的路径优化模型,系统比较了AFO、GA、PSO三种算法在收敛速度、全局寻优能力和稳定性方面的表现,同时引入Matlab自带的全局优化搜索器作为基准对照,深入析各算法在复杂物流网络中的适用边界与性能差异。研究表明,AFO算法在解决此类组合优化问题时展现出更快的收敛效率和更强的局部规避能力。; 适合人群:具备一定Matlab编程基础与运筹优化知识,从事物流工程、交通运输规划、智能算法开发等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于多式联运、综合货运网络中的路径决策支持系统构建;②为不确定性条件下复杂路径规划问题提供智能算法选型依据与技术实现方案;③支持科研人员复现主流优化算法并开展横向性能对比实验,推动算法改进与实际落地。; 阅读建议:建议读者结合提供的Matlab代码逐模块析算法实现流程,重点理解目标函数设计、约束条件处理及参数敏感性析部,可通过调整问题规模与算法参数进行对比实验,进一步拓展至动态路径规划或大规模网络优化等延伸场景。
内容概要:本文研究了基于QLearning自适应强化学习的PID控制器在自主水下航行器(AUV)运动控制中的应用,通过Matlab代码实现了控制算法的仿真验证。该方法融合强化学习的在线自适应能力与传统PID控制的稳定性优势,利用QLearning算法动态优化PID控制器的比例、积、微参数,以应对水下复杂流体环境、模型不确定性及外部干扰等挑战,从而提升AUV轨迹跟踪的精度、鲁棒性与动态响应性能。文中系统阐述了AUV的六自由度非线性动力学建模过程、QLearning算法的状态空间与动作空间设计、奖励函数构造及训练机制,并详细说明了PID参数自整定的闭环控制架构。仿真结果表明,相较于传统固定参数PID控制器,该智能控制策略在多种工况下均展现出更优的控制效果,有效抑制了超调,加快了响应速度,并增强了抗干扰能力。; 适合人群:具备自动控制理论、强化学习基础及Matlab/Simulink仿真能力,从事水下机器人、智能控制、海洋工程、自动化等领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于AUV、UUV等无人水下平台的高精度自主导航与运动控制;②为解决非线性、强耦合、时变系统的控制器参数自适应整定问题提供智能化解决方案;③作为强化学习与经典控制理论深度融合的技术范例,推动智能控制算法在海洋装备中的工程化应用。; 阅读建议:建议读者结合提供的Matlab代码深入理解算法实现细节,重点剖析QLearning的状态-动作-奖励机制设计、PID参数更新逻辑及仿真对比实验结果,有条件者可在更复杂的动力学模型或实际硬件平台上进一步验证与优化算法性能。

7,787

社区成员

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

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