关注我,随时获取最新帖子 |
开源精神必须支持~ |
学习一下吧 |
感谢分享,很给力!~ |
感谢分享,很给力!~ |
开源精神必须支持,大家一起努力~ |
能加上时间校验就好了,就死5秒过期机制 |
这是stl版本的,纯字节集的: std::vector<unsigned char> endecode( const std::vector<unsigned char> & data, const std::vector<unsigned char> & key, char level, std::vector<unsigned char> rand ) { if ( key.empty() ) return std::vector<unsigned char>(); std::vector<unsigned char> result( data.size(), 0 ); for ( size_t i = 0; i < data.size(); i++ ) { result [ i ] = ( data [ i ] ^ key [ ( ( i + 1 ) % key.size() ) ] ) ^ rand [ ( i + 1 ) % level ]; } return result; } std::vector<unsigned char> encode( const std::vector<unsigned char> & data, const std::vector<unsigned char> & key, char level ) { if ( level == 0 ) level = 1; auto len = data.size() - level; if ( !len ) return std::vector<unsigned char>(); std::vector<unsigned char> _you( data.end() - len, data.end() ); std::vector<unsigned char> _zuo( data.begin(), data.begin() + level ); return endecode( _you, key, level, _zuo ); } std::vector<unsigned char> decode( const std::vector<unsigned char> & data, const std::vector<unsigned char> & key, char level ) { if( data.empty()) return std::vector<unsigned char>(); if ( level == 0 ) level = 1; std::vector<unsigned char> random( level, 0 ); std::vector<unsigned char> result; std::srand( static_cast< unsigned int >( std::time( nullptr ) ) ); for ( int i = 0; i < level; ++i ) { random [ i ] = std::rand() % 256; } auto code = endecode( data, key, level, random ); if ( code.empty() ) return result; result.insert( result.end(), random.begin(), random.end() ); result.insert( result.end(), code.begin(), code.end() ); return result; } int main() { std::vector<unsigned char> fff = { 'w','r','n','m','s',',','b' ,'!','\0' }; std::vector<unsigned char> keys = { 'k','e','y','s' }; auto de = decode( fff, keys, 3 ); auto en = encode( de, keys, 3 ); std::cout << en.data() << std::endl; return 0; } |
我来抄一下... |
sitemap|
易语言源码|
易语言教程|
易语言论坛|
易语言模块|
手机版|
广告投放|
精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司
( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173