我被要求通过创建一个新程序来加密密码,我想的是使用位来改变输入键的每个字符与显然不相关的字符,所以我写了这个函数:
(我正在使用PHP代码):
function CBS($digits, $n_times) {
$mask = 0x7FFFFFFF;
$digits = intval($digits);
if($n_times > 0) {
$digits = ($digits<<$n_times%32) & (($digits>>(32-$n_times%32)) & ($mask>>(31-$n_times%32)));
}elseif($n_times < 0) {
$n_times = abs($n_times);
$digits = (($digits>>$n_times%32) & ($mask >> (-1+$n_times%32))) | ($digits<<(32-$n_times%32));
}
return decbin($digits);
}
Run Code Online (Sandbox Code Playgroud)
当然,在我加密密码后,我应该可以解密它.
有没有办法做到这一点?
你不需要把代码写给我,如果你能用文字向我解释它会很棒.
我正在使用WinAPI创建一个简单的程序来检查目录是否存在,这是函数代码:
BOOL directoryExists( LPCSTR path ) {
DWORD pathAttributes = GetFileAttributes ( path );
return pathAttributes != INVALID_FILE_ATTRIBUTES
&& pathAttributes == FILE_ATTRIBUTE_DIRECTORY;
}
Run Code Online (Sandbox Code Playgroud)
然后我在我的主要代码中用这行代码测试它:
std::cout << ( ( directoryExists( "C:\\Users\\Admin\\Desktop" ) ?
"Directory found" : "Directory not found" )
<< static_cast< char >( 0xA );
Run Code Online (Sandbox Code Playgroud)
无论我尝试输入什么绝对路径,看起来我都会找到"找不到目录".无论如何,相对路径成功!
我在哪里失败了?:|
提前致谢!
问题从标题中可以清楚地看出来.这是代码:
TimeTask.hpp:
#pragma once
#include <locale>
#include <codecvt>
#include <chrono>
namespace TimeTask {
static std::wstring_convert<std::codecvt_utf8_utf16<wchar_t> > converter;
std::tm * to_date(
int day, int month, int year,
int hours = -1, int minutes = -1, int seconds = -1
) {
time_t rawTime = time(0);
std::tm * tInfo = localtime(&rawTime);
tInfo->tm_mday = day;
tInfo->tm_mon = month - 1;
tInfo->tm_year = year - 1900;
if(hours >= 0)
tInfo -> tm_hour = hours;
if(seconds >= 0)
tInfo -> tm_sec = seconds;
if(minutes >= …Run Code Online (Sandbox Code Playgroud)