Проблема в вашей функции суммирования:
int cvtdigit(int d, char c)
{
int sum;
sum=sum+d;
return (sum);
}
Оригинал sum
из main
хранится в d
. В итоге вы создаете новую переменную с именем num
, которая не инициализируется, добавляя значение d
(т.е. sum
в main
) к неинициализированному sum
и возвращая это значение. Вот почему вы получаете странные цифры.
Измените функцию для удаления sum
и добавьте значение d
(которое вы должны переименовать в sum
) и c
, сначала вычтя '0'
, т.е. код символа для символа 0 из [1115 ] так что вы получите значение от 0 до 9.
int cvtdigit(int sum, char c)
{
sum=sum+(c-'0');
return sum;
}
Он написан на mono / Gtk #, и его основной платформой является GNU / Linux. Однако он должен быть в состоянии без проблем работать на всех платформах, которые моно и Gtk # работают. Основные характеристики как распространенное заблуждение) - в вашем случае использование сильного ключа для уникальной идентификации (и проверки) конкретной версии конкретной сборки, которая требуется GAC. Другое использование, которое предотвращает спуфинг другими сборками, в этом случае не кажется необходимым (поправьте меня, если я ошибаюсь). По этой причине я считаю, что вполне приемлемо оставлять ключ открытым (не защищенным паролем) и включать файл в систему контроля версий. Насколько я вижу, вы не остановите все, что не хотите, паролем, защищающим ключ. (Однако, если бы вы могли предоставить более подробную информацию о контексте безопасности, мне, возможно, придется пересмотреть это представление.)
Также см. в этой статье MSDN для подробного подробного обсуждения правильного использования строгого имени. подписание вообще.
Другое использование, которое предотвращает спуфинг другими сборками, в этом случае не кажется необходимым (поправьте меня, если я ошибаюсь). По этой причине я считаю, что вполне приемлемо оставлять ключ открытым (не защищенным паролем) и включать файл в систему контроля версий. Насколько я вижу, вы не остановите все, что не хотите, паролем, защищающим ключ. (Однако, если бы вы могли предоставить более подробную информацию о контексте безопасности, мне, возможно, придется пересмотреть это представление.)Также см. в этой статье MSDN для подробного подробного обсуждения правильного использования строгого имени. подписание вообще.
Другое использование, которое предотвращает спуфинг другими сборками, в этом случае не кажется необходимым (поправьте меня, если я ошибаюсь). По этой причине я считаю, что вполне приемлемо оставлять ключ открытым (не защищенным паролем) и включать файл в систему контроля версий. Насколько я вижу, вы не остановите все, что не хотите, паролем, защищающим ключ. (Однако, если бы вы могли предоставить более подробную информацию о контексте безопасности, мне, возможно, придется пересмотреть это представление.)Также см. в этой статье MSDN для подробного подробного обсуждения правильного использования строгого имени. подписание вообще.
Вполне допустимо оставлять ключ открытым (не защищенным паролем) и включать файл в систему контроля версий. Насколько я вижу, вы не остановите все, что не хотите, паролем, защищающим ключ. (Однако, если бы вы могли предоставить более подробную информацию о контексте безопасности, мне, возможно, придется пересмотреть это представление.)Также см. в этой статье MSDN для подробного подробного обсуждения правильного использования строгого имени. подписание вообще.
Вполне допустимо оставлять ключ открытым (не защищенным паролем) и включать файл в систему контроля версий. Насколько я вижу, вы не остановите все, что не хотите, паролем, защищающим ключ. (Однако, если бы вы могли предоставить более подробную информацию о контексте безопасности, мне, возможно, придется пересмотреть это представление.)Также см. в этой статье MSDN для подробного подробного обсуждения правильного использования строгого имени. подписание вообще.
Я бы сказал, включите ключ «разработки» в управление исходным кодом, чтобы упростить построение и не заставлять людей возиться с созданием и использованием своего собственного ключа. Ключ в управлении исходным кодом не имеет смысла с точки зрения безопасности, поскольку любой может подписать его. Если люди хотят подписать свою сборку вашего проекта с открытым исходным кодом, они могут заменить свой ключ, которым они могут управлять, любым удобным для них способом.
Вы также можете предоставить сборку для загрузки, подписанную защищенным ключом (что вы не делаете. дать кому-либо), но чтобы люди захотели использовать эти двоичные файлы, им нужно было бы вам доверять. Вы заслуживаете доверия? :)