Получить байты из std :: string в C++
std::string::data
может показаться достаточным string и наиболее эффективным. Если c++ вы хотите иметь неконстантную string память для манипулирования c++ (странно для шифрования), вы c++ можете скопировать данные strings в буфер, используя memcpy:
unsigned char buffer[mystring.length()];
memcpy(buffer, mystring.data(), mystring.length());
Фанаты cpp STL посоветуют вам использовать c++ вместо него std::copy:
std::copy(mystring.begin(), mystring.end(), buffer);
но в этом нет strings ничего хорошего. Если вам string-manipulation нужно нулевое завершение, используйте cxx std::string::c_str()
и различные методы дублирования c++ строк, которые предоставили cpp другие, но я бы обычно избегал string-manipulation этого и просто запрашивал cpp length
. В частности, в случае с string криптографией вы просто знаете, что c++ кто-то попытается взломать string-manipulation его, вставив в него нули, а string-manipulation использование std::string::data()
отпугивает str вас от ленивых предположений cpp о базовых битах в строке.
c++
string
Получить байты из std :: string в C++
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.