Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
2 / 2 / 2
Регистрация: 22.04.2014
Сообщений: 18
1
.NET 4.x

Зашифровать имя файла и избежать недопустимых для пути символов

11.07.2015, 20:35. Показов 1293. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите вариант шифрования имени файла, использование криптопровайдера выдает недопустимые символы для использования в пути и слишком длинные строки (по количеству символов)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.07.2015, 20:35
Ответы с готовыми решениями:

Как избежать ввода недопустимых символов?
Написал тут функцию. При вводе целых чисел все нормально работает. Если пользователь вводит...

Вытащить имя файла из пути
Есть переменная $file которая содержит, предположим, /art/upload/models/test.jpg Хочу чтобы из нее...

C пути получить имя файла
Всем здрасте, у меня есть путь точнее много путей к каждому файлу в цыкле, выгледят так :\ ...

Убрать имя файла из пути
Доброго времени суток. есть переменная с путём к файлу, задача удалить с нее имя файла. Было...

12
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
11.07.2015, 21:03 2
Цитата Сообщение от foxkid Посмотреть сообщение
выдает недопустимые символы
Например?
0
2 / 2 / 2
Регистрация: 22.04.2014
Сообщений: 18
11.07.2015, 21:08  [ТС] 3
например может получится следующее -"aOk/QbzOTsYehu3fN7r81OOM|VrddyZMULCR5iFplz6xCwP80RqjV+sqavjmYOn/Y"
здесь недопустимые символы - "\" , "|" , "/"
Это при использовании 3Des шифрования (TripleDESCryptoServiceProvider)
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
11.07.2015, 21:18 4
Было
https://www.cyberforum.ru/post7852740.html
Стало
VB.NET
1
2
        Dim Fname As String = "aOk/QbzOTsYehu3fN7r81OOM|VrddyZMULCR5iFplz6xCwP80RqjV+sqavjmYOn/Y"
        Fname = Regex.Replace(Fname, "[\|/]", String.Empty)
Что Вы пишете и зачем понадобилось так коверкать имена файлов?
0
2 / 2 / 2
Регистрация: 22.04.2014
Сообщений: 18
11.07.2015, 21:23  [ТС] 5
Путем костыля с недопустимыми символами в принципе можно и справиться- их не так уж и много (например заменять их какойнибудь комбинацией ) но с длинной строки конечно засада- приведенная строка - это "Test.txt" 9 символов всего....

Добавлено через 1 минуту
Памирыч, если заменить символы(в вашем случае удалить регуляркой) то как потом расшифровать имя файла обратно?
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
11.07.2015, 21:27 6
foxkid, ждете ответов на вопросы - будьте добры отвечать и на поставленные Вам
1
2 / 2 / 2
Регистрация: 22.04.2014
Сообщений: 18
11.07.2015, 21:28  [ТС] 7
Памирыч, программа синхронизации\архивирования каталогов с документами , целевая папка находится в общем доступе поэтому происходит шифрование файлов, программа написана осталось только собственно сделать нечитаемые инена файлов...
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
11.07.2015, 21:29 8
foxkid, то есть 9 символов в имени файла разворачиваются в огромную портянку из крякозябр?
0
2 / 2 / 2
Регистрация: 22.04.2014
Сообщений: 18
11.07.2015, 21:30  [ТС] 9
Памирыч, отвечаю но похоже не так уж быстро , извините

Добавлено через 1 минуту
Памирыч, так точно . но имена могут быть и более 20 символов - можно представить что получается
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
11.07.2015, 21:35 10
foxkid, меняйте алгоритм шифрования, выбранный не годится.
Это все, что можно посоветовать на данном этапе

Добавлено через 2 минуты
foxkid, так, а содержимое файлов шифруется? Или только имя?
Если только имя - насколько криптостойким должно быть шифрование? Возможно, сойдет какое-нибудь более примитивное
0
2 / 2 / 2
Регистрация: 22.04.2014
Сообщений: 18
11.07.2015, 21:39  [ТС] 11
Памирыч, именно по этому поводу и хочется получить какойнибудь совет , все методы которые предлагает криптопровайдер уже перепробывал, в какую сторону двигаться?
содержимое файлов шифруется

Добавлено через 2 минуты
Памирыч, вполне может сойти чтонибудь и примитивное , но метод перестановки не подойдет
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
11.07.2015, 22:41 12
Цитата Сообщение от foxkid Посмотреть сообщение
вполне может сойти чтонибудь и примитивное
"Шифрование" по паролю
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        For Each fn As String In IO.Directory.GetFiles("C:\2")
            My.Computer.FileSystem.RenameFile(fn, NedoRasShifr(IO.Path.GetFileName(fn), "cyberforum"))
        Next
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        For Each fn As String In IO.Directory.GetFiles("C:\2")
            My.Computer.FileSystem.RenameFile(fn, NedoShifr(IO.Path.GetFileName(fn), "cyberforum"))
        Next
    End Sub
    Function NedoShifr(ByVal InputString As String, ByVal Key As String) As String
        Dim Summ As Integer
        Dim K() As Char = Key.ToCharArray
        For Each Kc As Char In K
            Summ += Asc(Kc)
        Next
        Dim Ca() As Char = InputString.ToCharArray
        For I As Integer = 0 To Ca.Length - 1
            Ca(I) = ChrW(Asc(Ca(I)) + Summ + I)
        Next
        Return New String(Ca)
    End Function
    Function NedoRasShifr(ByVal InputString As String, ByVal Key As String) As String
        Dim Summ As Integer
        Dim K() As Char = Key.ToCharArray
        For Each Kc As Char In K
            Summ += Asc(Kc)
        Next
        Dim Ca() As Char = InputString.ToCharArray
        For I As Integer = 0 To Ca.Length - 1
            Ca(I) = Chr((AscW(Ca(I)) - Summ - I))
        Next
        Return New String(Ca)
    End Function
Карежит имена файлов указанной папки и восстанавливает "как было"
Названия функций говорят за себя. Поэтому, если надо быстрее и малой кровью, то может сойти.
Если нужно что-то серьезное, то код не пойдет. Я не помню, откуда у меня этот школьный пугач, но то, что он порос мхом - это факт
Миниатюры
Зашифровать имя файла и избежать недопустимых для пути символов  
2
2 / 2 / 2
Регистрация: 22.04.2014
Сообщений: 18
12.07.2015, 07:07  [ТС] 13
Памирыч, Огромное спасибо , интересный вариант. в принципе появилась немного похожая идея - заменять символы другими (расположеными в случайном порядке )из массива , типа способа транслитерации когда происходит замена символ-символ.

Добавлено через 22 минуты
в принципе если стандартного шифрования удовлетворяющего условиям нет, то остановлюсь на замене символов . думаю что если совместить , допустим с чем нибудь типа шифрования Кардано , то меня это устроит...
Хотя конечно надеялся , что я что-то упустил и есть какие-то стандартизированные способы...
Существуют же програмки (в основном для облачного хранения) которые позволяют шифровать имена, неужели разработчики в каждом случае изобретают свои способы щифрования?
0
12.07.2015, 07:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.07.2015, 07:07
Помогаю со студенческими работами здесь

Русское имя в пути файла
У меня на хостинге в файловом менеджере есть папка ВАСЯ, а в ней фотографии, при формировании пути...

Получить имя файла из пути
Господа, помогите - совсем голову сломал. Нкидаю на Лист список файлов для дальнейшего...

Выделить из пути имя файла
Дана строка, содержащая полное имя файла, то есть имя диска, список каталогов (путь), собственно...

Считать имя файла из полного пути
делаю скрипт, который будет обрабатывать файлы по папкам надо обработать список файлов с полными...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru