SAX符号化序列范例源码--------------------timeseries2symbol.m:--------------------Thisfunctiontakesinatimeseriesandconvertittostring(s).Therearetwooptions:1.ConverttheentiretimeseriestoONEstring2.Useslidingwindows,extractthesubsequencesandconvertthesesubsequencestostringsForthefirstoption,simplyenterthelengthofthetimeseriesas"N"ex.Wehaveatimeseriesoflength32andwewanttoconvertittoa8-symbolstring,withalphabetsize3:timeseries2symbol(data,32,8,3)Forthesecondoption,enterthedesiredslidingwindowlengthas"N"ex.Wehaveatimeseriesoflength32andwewanttoextractsubsequencesoflength16usingslidingwindows,andconvertthesubsequencesto8-symbolstrings,withalphabetsize3:timeseries2symbol(data,16,8,3)Input:dataistherawtimeseries.Nisthelengthofslidingwindow(usethelengthoftherawtimeseriesinsteadifyoudon'twanttohaveslidingwindows)nisthenumberofsymbolsinthelowdimensionalapproximationofthesubsequence.alphabet_sizeisthenumberofdiscretesymbols.2<=alphabet_size<=10,althoughalphabet_size=2isa special"useless"case.Output:symbolic_data:matrixofsymbolicdata(no-repetition).Ifconsecutivesubsequenceshavethesamestring,thenonlythefirstoccurrenceisrecorded,withapointertoitslocationstoredin"pointers"pointers:locationofthefirstoccurrencesofthestringsN/nmustbeaninteger,otherwisetheprogramwillgiveawarning,andabort.Thevariable"win_size"isassignedtoN/n,thisisthenumberofdatapointsontherawtimeseriesthatwillbemappedtoasinglesymbol,andcanbeimaginedasthe"compressionrate".Thesymbolicdataisreturnedin"symbolic_data",withpointerstoth
2025/3/29 15:54:56 24KB SAX 序列 matlab
1
c语言实现的模板,实现方法是使用void指针和size包括listqueuestack三种
2025/1/13 2:05:28 4KB c语言 模板 list queue
1
加密算法在信息技术领域中起着至关重要的作用,用于保护数据的安全性和隐私性。
SHA(SecureHashAlgorithm)是一种广泛使用的散列函数,它将任意长度的数据转换为固定长度的摘要值。
SHA512是SHA家族中的一员,提供更强大的安全性能,尤其适合大数据量的处理。
本文将深入探讨SHA512加密算法的原理、C++实现以及其在实际应用中的重要性。
SHA512算法基于密码学中的消息摘要思想,通过一系列复杂的数学运算(如位操作、异或、循环左移等),将输入数据转化为一个512位的二进制数字,通常以16进制形式表示,即64个字符。
这个过程是不可逆的,意味着无法从摘要值推导出原始数据,因此被广泛应用于数据完整性验证和密码存储。
在C++中实现SHA512算法,首先需要理解其基本步骤:1.**初始化**:设置一组初始哈希值(也称为中间结果)。
2.**预处理**:在输入数据前添加特殊位和填充,确保数据长度是512位的倍数。
3.**主循环**:将处理后的数据分成512位块,对每个块进行多次迭代计算,每次迭代包括四个步骤:扩展、混合、压缩和更新中间结果。
4.**结束**:将最后一个中间结果转换为16进制字符串,即为SHA512的摘要值。
C++代码实现时,可以使用位操作、数组和循环来完成这些计算。
为了简化,可以使用`#include`中的`uint64_t`类型表示64位整数,因为SHA512处理的是64位的数据块。
同时,可以利用`#include`中的`memcpy`和`memset`函数来处理内存操作。
此外,`#include`和`#include`库可用于将二进制数据转换成16进制字符串。
以下是一个简化的C++SHA512实现框架:```cpp#include#include#include#include#include//定义常量和初始化哈希值conststd::arraykInitialHashValues{...};std::arrayhashes=kInitialHashValues;//主循环函数voidProcessBlock(constuint8_t*data){//扩展、混合、压缩和更新中间结果}//输入数据的处理voidPreprocess(conststd::string&input){//添加填充和特殊位}//将摘要转换为16进制字符串std::stringDigestToHex(){//转换并返回16进制字符串}//使用示例std::stringmessage="Hello,World!";Preprocess(message);constuint8_t*data=reinterpret_cast(message.c_str());size_tdataSize=message.size();while(dataSize>0){if(dataSize>=128){ProcessBlock(data);dataSize-=128;data+=128;}else{//处理剩余数据}}std::stringresult=DigestToHex();```这个框架只是一个起点,实际的SHA512实现需要填充完整的扩展、混合和压缩步骤,以及处理边界条件。
此外,为了提高效率,可能还需要使用SIMD(SingleInstructionMultipleData)指令集或其他优化技术。
SHA512算法在多种场景下具有广泛的应用,如:-**文件校验**:通过计算文件的SHA512摘要,可以验证文件在传输或存储过程中是否被篡改。
-**密码存储**:在存储用户密码时,不应直接保存明文,而是保存SHA512加密后的哈希值。
当用户输入密码时,同样计算其SHA512值并与存储的哈希值比较,不匹配则表明密码错误。
-**数字签名**:在公钥加密体系中,SHA512可以与非对称加密算法结合,生成数字签名,确保数据的完整性和发送者的身份验证。
了解并掌握SHA512加密算法及其C++实现,对于信息安全专业人员来说至关重要,它不仅有助于提升系统的安全性,也有助于应对不断发展的网络安全威胁。
通过深入学习和实践,我们可以更好地理解和利用这一强大的工具。
2024/11/12 20:26:46 2.14MB 加密算法
1
已经厌烦在WM_SIZE里面写一堆布局计算的代码了么,或许这份代码可以帮助你。
这是一些用C++写的布局类,包含Border,Box,Flow,Grid,Stack五种布局,它们可以嵌套,通过结合Margin可以完成一些常见的界面布局效果,如居中,拉伸,居左,居右等。
各个对象布局的机制很简单(主要包括calc和adjust两个阶段),因此复杂的布局效果得要自己扩展。
另外,所有对象均自己管理内存,通过各个类的create函数来创建对象。
资源2分就当是鼓励吧。
2024/11/12 18:46:11 80KB C++ VC MFC WIN32
1
毕业论文,java,网上购物商城Vectorshop=(Vector)session.getAttribute("shop");if(shop==null){shop=newVector();}else{for(inti=0;i<shop.size();i++){BuyListlist=(BuyList)shop.elementAt(i);if(list.warename.equals(mylist.warename)){list.number++;shop.setElementAt(list,i);listFlag=false;if(listFlag)shop.addElement(mylist)
2024/10/17 16:50:08 2.93MB 毕业论文
1
/***返回文字的size**@paramfont文字大小**@parammaxSize限制的宽高**@return返回Size*/-(CGSize)sizeWithFont:(UIFont*)fontmaxSize:(CGSize)maxSize;/***类名返回控制器对应的类**@paramstr类型**@return返回一个实类*/+(UIViewController*)stringChangeToClass:(NSString*)str;/***MD5加密
2024/10/16 11:11:15 5.18MB OC 工具类 封装 Extension
1
軟件操作鍵Esc:退出软件F1:启用背景色空格暂停并显示至本段头部方向键下和右跳转到下段上和左返回到上段配置文件(用于设置软件外观和速度)节点说明index:用于记录小说所看到的位置,可用于快速跳节.正常无需修改.size:每节小说的字符个数.越大加载速度越慢.观看的历史记录越模糊.不建议修改timer:文字跳动频率len:跳动值越大一次跳动的字数越多begcolor:按F1后文本后的背景色fontcolor:显示的文本颜色軟件所需資源文件把你要看的小說更名為:test.txt放在和軟件同級目錄下,并將index節點改為1即可開始閱讀。
1
/***初始化SDK*/privatestaticvoidinitSDK(Stringappid,Stringappkey){ProxySelectordefaultProxySelector=ProxySelector.getDefault();Proxyproxy=null;ListproxyList=null;try{proxyList=defaultProxySelector.select(newURI("http://www.google.it"));}catch(URISyntaxExceptione){e.printStackTrace();}if(proxyList!=null&&proxyList.size()>0){proxy=proxyList.get(0);Log.d(TAG,"CurrentProxyConfiguration:"+proxy.toString());}AppInfoappInfo=newAppInfo();appInfo.setAppId(appid);//应用IDappInfo.setAppKey(appkey);//应用KeyappInfo.setCtx(ctx);/**VersionCheckLevelNormal版本检查失败可以继续进行游戏VersionCheckLevelStrict*版本检查失败则不能进入游戏默认取值为VersionCheckLevelStrict*/appInfo.setVersionCheckStatus(AppInfo.VERSION_CHECK_LEVEL_STRICT);//初始化SDKCommplatform.getInstance().Init(0,appInfo,newCallbackListener(){@Overridepublicvoidcallback(finalintparamInt,IntegerparamT){ctx.runOnUiThread(newRunnable(){@Overridepublicvoidrun(){Log.i(TAG,"InitparamInt="+paramInt);//ok.setEnabled(true);LogUtil.send("初始化:"+paramInt);}});}});}/***用户登录**/publicstaticvoidloginEx(Contextcontext){Bundlebundle=newBundle();bundle.putString("nounce",UUID.randomUUID().toString().replace("-",""));Commplatform.getInstance().LoginEx(context,bundle,newCallbackListener(){@Overridepublicvoidcallback(intresultCode,Bundlebundle){if(resultCode==ErrorCode.COM_PLATFORM_SUCCESS){//完成参数验签//处理登录成功逻辑//HomeActivity.show(ctx);//Stringuin=bundle.getString("uin");LogUtil.send("登录成功:");//Stringuin=bundle.get("nounce").toString();Stringuin=Commplatform.getInstance().getLoginUin();LogUtil.send("登录成功uin:"+uin);UnityPlayer
2024/8/25 11:15:30 920KB eclipse unity
1
读取obj文件,转换为顶点数组、索引数组和颜色数组使用为各自开辟缓存空间并且绑定缓存空间,使用着色器渲染图形,glDrawElements(GL_TRIANGLES,3*objRead.faces.size(),GL_UNSIGNED_BYTE,0);绘制
2024/7/26 16:22:20 36.87MB OpenGL
1
.wkpf,.wkpf1{ font-family:"微软雅黑"; font-size:13px; line-height:30px; text-decoration:none; color:#818183;}2138次浏览    评价:好中差      前言上周我与阿里的宇果有一次技术的交流,然后对天猫H5站点做了一些浅层次的分析,后面点时间基本天天都会有联系,中途聊了一些技术细节、聊了双方团队在干什么,最后聊到了前端优化。
因为我本身参与了几次携程H5站点的优化,在这方面有一些心得,但是与宇果交流的过程中发现我们在优化的时候忽略了一些细节。
携程做优化的时候整个重心基本放到了尺寸
2024/7/20 22:04:48 776KB 大屏android手机动画丢帧的背后
1
共 73 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡